カスタム投稿の種類別やモバイル時に一覧表示の件数を出し分ける
管理画面で設定した一覧の表示件数とそれ以外でカスタム投稿の一覧ページで表示件数を変えたい時、(例えばニュース一覧だとリストで縦並びなのでデザインはシンプルだけど他の投稿ではカード方にしたいから表示件数を変更したい等)
PCとモバイルでモバイルは表示を少なくしたい(PCでは横並びでもスマホだと縦積みになるため下に伸びすぎるから件数を減らしたい等)
という時に行った内容の 覚書メモ
通常時は管理画面の設定した件数を一覧のループ内で記載すれば問題ないがカスタム投稿が複数あった場合やfunctions.phpにまとめて記載/管理した方が便利という時にはいいなと思った(個人的感想)
任意のカスタム投稿の一覧ページ・カスタムタクソノミー一覧の表示件数を設定する方法
functions.php
function my_posts_per_page($query){ //管理画面の設定は変更しない if (is_admin() || ! $query->is_main_query()) { return; } //アーカイブ・カスタム投稿ページ一覧を変更したい場合 if ($query->is_post_type_archive('カスタムポスト名')) { $query->set('posts_per_page', '12'); return; } //カスタムタクソノミー一覧を変更したい場合 if ($query->is_tax('article_tag')) { $query->set('posts_per_page', '9'); return; } add_action('pre_get_posts', 'my_posts_per_page');
本来なら一つの設定の中にひとまとめ出来ればよかったけれど上手く動かなかったので
スマホの場合は別に設定する
スマホで閲覧時の一覧表示件数を設定する方法
functions.php
function mobile_pre_get_posts( $query ) { if ( ! is_admin() && wp_is_mobile() && $query->is_main_query() ) { $query->set( 'posts_per_page', '5' ); //※表示させたい件数を設定する } } add_action( 'pre_get_posts', 'mobile_pre_get_posts' );
スマホで閲覧時はこれでPCと異なる記事数にすることが出来るようになった。