ワードプレスでは 設定 => 読み値 => ブログページはせいぜい [入力フィールド] 投稿
現時点では3ポストに設定しています。
私のインデックス、日付アーカイブ、タグアーカイブ、カテゴリアーカイブ、検索結果などで...ループとページングを使用するすべてのページで、1ページに3件の投稿が表示されます。
私の目標は、ページごとに結果の数を変えることができるようにすることです。私のインデックスに3つの投稿があるかもしれませんが、検索結果またはアーカイブでは、ページごとの結果の数が異なることを示しています。
これを行う方法はありますか?
これはそれをします:(あなたのテーマのfunctions.phpに追加)
add_action( 'pre_get_posts', 'set_posts_per_page' );
function set_posts_per_page( $query ) {
global $wp_the_query;
if ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_search() ) ) {
$query->set( 'posts_per_page', 3 );
}
elseif ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_archive() ) ) {
$query->set( 'posts_per_page', 5 );
}
// Etc..
return $query;
}
上記の答えを改善する:フックpre_get_posts
は参照によって取得されるので、global
呼び出しやreturn
callを必要としません。
add_action( 'pre_get_posts', 'set_posts_per_page' );
function set_posts_per_page( $query ) {
if ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_search() ) ) {
$query->set( 'posts_per_page', 3 );
}
elseif ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_archive() ) ) {
$query->set( 'posts_per_page', 5 );
}
// Etc..
}