2016-04-06 10 views
-1

私のワードプレスのウェブサイトには、ニュースクラブという2つのカテゴリがあります。どのようにニュースカテゴリーの1ページあたりの投稿の数を設定するにはクラブのカテゴリの1ページあたり4つの記事?Wordpress - 2つの異なるカテゴリのページ番号ごとに異なる投稿を設定するには?

私は私が4 にposts_per_pageを設定クラブカテゴリのカスタムループを持っているクラブ

を私が望むように動作 10とニュースを読む>設定でページごとの投稿数を設定しなくてい

category-club.phpにあります。

$args=array(
    'category_name'=>'club', 
    'post_type' => 'post', 
    'post_status' => 'publish', 
    'posts_per_page' => 4, 
    'orderby' => 'date', 
    'order' => 'desc', 
    'paged' => ((get_query_var('paged')) ? get_query_var('paged') : 1) 
); 

しかし、このカテゴリの投稿の2ページ目に切り替えると問題があります。私は404エラーを取得します。私はこのカテゴリに10以下の投稿があるからだと思います。

2番目と次のページがうまくいくようにするにはどうすればいいですか?

+0

。 –

+0

私はデフォルトのループを持っており、category-club.phpにあります。私はargsを上に投稿したループを持っています – Mariusz

+0

しかしwpのカテゴリーは常に 'index.php'から引き出されます。別の '.php'ファイルに入れます。カスタムクエリを使ってページテンプレートを作成することはできますが、メニューのカテゴリとしてページを追加することはできませんが、ページは... –

答えて

1

メインクエリの代わりにカスタムクエリを実行しないでください。彼らは常により多くの問題につながります。あなたが経験したように、ページネーションは常にそれらの1つです。また、メインクエリの代わりにカスタムクエリを実行すると、ページが遅くなるため、常に緩やかな状況になります。

メインクエリで何かを変更する必要がある場合は、pre_get_postsを使用して必要なものを達成してください。あなたは次のことを試すことができます(をちょうどあなたのカテゴリページにデフォルトのループに戻ることを忘れないでください)あなたが設定ページとカテゴリごとの具体的なポストで2つのクエリを作成する必要があると思います

add_action('pre_get_posts', function ($q) 
{ 
    if ( !is_admin() // Only target the frontend 
     && $q->is_main_query() // Only target the main query 
     && is_category() // Only target category pages 
    ) { 
     if (is_category('news')) 
      $q->set('posts_per_page', 10); 

     if (is_category('club')) 
      $q->set('posts_per_page', 4); 
    } 
}); 
関連する問題