特定の投稿タイプについてposts_per_pageの制限を解除できるかどうかを知りたいです。
Archive.phpページでは、さまざまな投稿タイプを表示していますが、特定の「出版物」投稿タイプについては、すべての投稿を表示します。伝統的な "投稿"タイプに影響を与えずにこれを達成するにはどうすればよいですか?
pre_get_posts
オブジェクトにアクセスするには、$query
アクションにフックします。
あなたのfunctions.phpの中にあなたのアクションフックを使うべきです。あなたの関数がどのように見えるかの例:
add_action( 'pre_get_posts', 'publications_archive_query' );
function publications_archive_query( $query ) {
if ( !is_admin() && $query->is_main_query()) {
if ( $query->get('post_type') === 'publications' ) {
$query->set( 'posts_per_page', 5 );
}
}
条件付きチェックを使用して、変更しているクエリを絞り込みます。
現在のクエリのpost_typeをチェックするための$query->get('post_type')
。
is_main_query
を使用して、クエリの変更をメインのクエリにのみ適用していることを確認してください。
さらに読み、より多くの例を見つけてください: https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts