レッスン予約システムについてのメモです。
以前に、「特定のカテゴリだけ1ページ当たりの表示記事数を変える」というのを試しましたが、その後、その「特定のカテゴリ」のサブカテゴリにも同じ「1ページ当たりの記事数」を適用したい、というケースがでてきました。
具体的には、親カテゴリと子カテゴリの間で共通のカテゴリーアーカイブテンプレートを使用しているとき、体裁上、どちらも1ページ当たりの記事数を同じにしたかったのです。
子カテゴリが増えても対応できるように、使用テーマの functions.php に以下のコードを追加しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
/* * 「講師(teacher)」とそのサブカテゴリだけ1ページ当たりの記事数を3件にする */ add_action('pre_get_posts', 'category_teacher_per_page'); function category_teacher_per_page($wp_query){ if(!is_admin()) { if($wp_query->is_main_query()){ if($wp_query->is_category()){ $c = get_category($wp_query->query['cat']); if($c->slug == 'teacher'){ $wp_query->set('posts_per_page', 3 ); } else { while($c->parent){ $c = get_category($c->parent); if($c->slug == 'teacher'){ $wp_query->set('posts_per_page', 3 ); break; } } } } } } } |
コメントを残す