2016/04/18
カスタム投稿 Wordpress
以前、「【WordPress】taxonomy.phpで一覧をランダム表示」という記事を書きましたが、
記事の中で使用しているquery_postsについて、非推奨になっているようです。
そこで、別の方法でランダム表示をすることにしました。
参考サイト
[WordPress]pre_get_postsを使いこなす!pre_get_posts使い方まとめ
functions.php
//タクソノミー一覧の表示数指定
function change_posts_per_page($query) {
 /* 管理画面,メインクエリに干渉しないために必須 */
 if( is_admin() || ! $query->is_main_query() ){
     return;
 }
 
 /* カテゴリーページの表示件数を50件にする */
 if ( $query->is_tax() ) {
     $query->set( 'posts_per_page', '50' );
     return;
 }
 
}
add_action( 'pre_get_posts', 'change_posts_per_page' );
//タクソノミー一覧の並び順をランダムに
function change_posts_query( $query ) {
  if( is_tax() ) {
    $query->set('orderby', 'rand');
    // orderby のように スペース区切りで複数指定してみる
    $query->set('order', 'ASC DESC');
  }
}
add_action('pre_get_posts', 'change_posts_query');
ここで重要なのが、posts_per_pageを使用する場合、
管理画面も影響するため、
function change_posts_per_page($query) {
 /* 管理画面,メインクエリに干渉しないために必須 */
 if( is_admin() || ! $query->is_main_query() ){
     return;
 }
を必ず記述します。
taxsonomy.phpに記述していた
<?php query_posts($query_string . "&orderby=rand"); ?>
は削除します。
query_postsを使わず、posts_per_pageを使う場合には、
functions.phpに記述をするため、若干敷居が高いですが、
まずは簡単なところから始めてみました。
ゼヒトモ内でのプロフィール: ROCKSTREAM, ゼヒトモのホームページ作成・制作サービス, 仕事をお願いしたい依頼者と様々な「プロ」をつなぐサービス
2025/01/31
JQuery
2025/01/01
神社
御朱印
相模原
2024/10/27
ブラウザ
カスタム投稿
Wordpress
2024/08/20
神社
御朱印
2024/07/06
神社
御朱印
