直感的に記事などの表示順序並べ替えることができるIntuitive Custom Post Order。
管理画面上は入れ替わっているものの、肝心のサイトでは表示が入れ替わっていない部分があった。その際のメモ。
※ファイルの状態によってまちまちだと思うので「今回はこれで解決した」程度のメモです。要件を書くと果てしないのでファイルの構成などの細かいところの説明は省いています。また、諸事情で子テーマを作成していたため、該当の記述はその子テーマに行っています。
※WordPressとphp初心者なのでなにか間違いがあればご指摘いただけると幸いです!
上記サイトによると
WP_Query や pre_get_posts 等で「orderby」パラメータに、
「menu_order」を設定することで並べ替えが効くようになる場合があります。
とのこと。
が、そもそも上記の記述がうまいこと見つからない…。
ああでもないこうでもないとほかのサイトを見ながらいじり倒している中で、以下のサイトを発見。
functions.phpに以下を追加。
function sortpost_rand($query) {
if(is_admin() || !$query->is_main_query()){
return;
}
$query->set('orderby', 'rand');
}
add_action('pre_get_posts', 'sortpost_rand');
これだと単にランダムに表示されるようになるので、初めに紹介したサイトを参考にorderbyのプロパティにrandをmenu_orderに変更。
function sortpost_rand($query) {
if(is_admin() || !$query->is_main_query()){
return;
}
$query->set('orderby', 'menu_order');
}
add_action('pre_get_posts', 'sortpost_rand');
サイトを確認したところ該当のページにIntuitive Custom Post Orderで並べ替えした内容が反映されていることを確認。
終了!
WordPress自体ど素人なのでどこをいじれば!?状態だったのですが今回は何とか解決。
phpが読み解けるようになりたい…。