WordPressでメインループを書き換えたい場合がよくあるのでメモです。
今回は、Custom Post Type UIプラグインで「お知らせ(news)」というのカスタム投稿タイプを作成し、そのお知らせ記事一覧の表示順を、デフォルトの最新順から「ランダム」に変更する場合のカスタマイズです。
pre_get_postsでメインクエリを制御して表示順をランダムに変更
ご利用のテーマのfunctions.phpに以下のようなコードを追加します。
1 2 3 4 5 6 7 8 9 |
function cpt_change_orderby($query) { if (is_admin() || !$query->is_main_query()) { return; } if ($query->is_post_type_archive('news')) { $query->set('orderby','rand'); } } add_action('pre_get_posts','cpt_change_orderby'); |
6行目の‘orderby’,’rand’でランダム表示に変更しています。
コメント