(WordPress管理者の閲覧設定で定義されているように)1ページに表示するようにブログ投稿のセット数を上書きすることは可能ですか?私が使っているカスタムループが無限の数を表示するようにしたいのです。
クエリに表示される投稿数を制御する引数はposts_per_pageです。
<?php query_posts( array(
'post_type' => 'post',
'posts_per_page' => -1 )
);
?>
また、3.0ブランチには-1の整数ですべての投稿が表示されないというバグがあります。これは3.1で修正されましたが、回避策は-1の代わりに非常に高い数を使用することです。
見る:
確かに、追加してクエリを変更します。
<?php query_posts('post_type=post&numberposts=-1'); ?>
Eileenは正しいですが、引数を配列として使うほうが良いです<?php query_posts( array( 'post_type' => 'post', 'numberposts' => -1 ) ); ?>
私は同じ問題を抱えていました..私はカスタム変数を追加し、pre_get_posts
query_varを設定するためにpost_per_page
の間にその変数をキャッチすることにしました。
function custom_query_vars_filter($vars) {
$vars[] = 'post_per_page_override';
return $vars;
}
add_filter( 'query_vars', 'custom_query_vars_filter' );
add_action( 'pre_get_posts', 'rc_modify_query_get_design_projects' );
function rc_modify_query_get_design_projects( $query ) {
if( $query->query_vars['post_per_page_override'] == '3') {
$query->set('posts_per_page', '3');
}
}
それから私はさらに進んで、カスタムクエリvarに表示したい正確な量を取得します。
function custom_query_vars_filter($vars) {
$vars[] = 'post_per_page_override';
return $vars;
}
add_filter( 'query_vars', 'custom_query_vars_filter' );
add_action( 'pre_get_posts', 'rc_modify_query_get_design_projects' );
function rc_modify_query_get_design_projects( $query ) {
if( $query->query_vars['post_per_page_override']) {
$customPPPlimit = $query->query_vars['post_per_page_override'];
$query->set('posts_per_page', $customPPPlimit);
}
}
私のために働きました。