2016/07/18
カスタム投稿 Wordpress
備忘録です。
参考サイト
WordPressでコンテンツごとにアーカイブページの表示件数を変更するベストな方法
通常であれば下記のように指定をします。
archive-**.php
<?php query_posts('&posts_per_page=10'); if (have_posts()) : while (have_posts()) : the_post(); ← ループスタート ?>
しかし、query_postsは最近推奨されていないため、functionsで表示件数の指定をします。
functions.php
function change_posts_per_page($query) { if ( is_admin() || ! $query->is_main_query() ) return; if ( $query->is_archive() ) { /* アーカイブページの時に表示件数を5件にセット */ $query->set( 'posts_per_page', '5' ); } } add_action( 'pre_get_posts', 'change_posts_per_page' );
いろいろな条件分岐のパターン
functions.php
function change_posts_per_page($query) { if ( is_admin() || ! $query->is_main_query() ) return; /* アーカイブページの時に表示件数を10件にセット */ if ( $query->is_archive() ) { $query->set( 'posts_per_page', '10' ); } /* ポストアーカイブの時に表示件数を30件にセット */ if ( $query->is_post_type_archive($post_types) ) { $query->set( 'posts_per_page', '30' ); } /* 検索ページの時に表示件数を20件にセット */ if ( $query->is_search() ) { $query->set( 'posts_per_page', '20' ); } /* タクソノミー「hoge」の時に表示件数を20件にセット */ if ( $query->is_tax('hoge') ) { $query->set( 'posts_per_page', '20' ); } } add_action( 'pre_get_posts', 'change_posts_per_page' );
is_post_type_archive($post_types)は()にpost-typeを指定します。
例:is_post_type_archive('news')
これで特定のカスタム投稿の件数を指定できます。
その他条件分岐は下記を参考にしてください。
条件分岐タグ
ゼヒトモ内でのプロフィール: ROCKSTREAM, ゼヒトモのホームページ作成・制作サービス, 仕事をお願いしたい依頼者と様々な「プロ」をつなぐサービス
2024/08/20
神社
御朱印
2024/07/06
神社
御朱印
2024/07/06
神社
御朱印
2024/02/09
神社
2024/02/09
神社