通常の投稿やカスタム投稿のアーカイブページの表示順がデフォルトでは投稿日順になっているのを変更する方法を備忘もかねて書いておきます。
※下記コードはカスタム投稿アーカイブページのみの設定です。
functions.php内に下記のコードを記述
//カスタム投稿アーカイブページの並び順を変更
function change_posts_per_page($query) {
//管理画面,メインクエリに干渉しないために必須
if( is_admin() || ! $query->is_main_query() ){
return;
}
//カスタム投稿「members」アーカイブページの表示件数を10件、ふりがなの昇順でソート
if ( $query->is_post_type_archive( 'members' ) //membersのアーカイブページか、もしくは
||
$query->is_tax() ) //カスタム分類のアーカイブページが表示されているか
{
$query -> set( 'posts_per_page', '10' ); //1ページ最大10件
$query -> set('meta_key', 'shop_kana'); //基準のカスタムフィールドキー
$query -> set('orderby', 'meta_value'); //meta_valueの値で並べる
$query -> set('order','ASC'); //昇順
return;
}
}
add_action( 'pre_get_posts', 'change_posts_per_page' ); //pre_get_postsでメインクエリが実行される前のクエリを書き換える
カテゴリ別のアーカイブページにも同じ設定をしたかったので、if文でor設定をしています。
カスタム投稿アーカイブページの表示順を変更したくて色々調べていたのですが、これというのがヒットしませんでしたので、この記事が少しでも誰かの役に立てば嬉しいです。
コメント