やりたいこと:
カテゴリーページをタイトルの一覧のみが表示されるページにしたい。
方法:
category.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 26 |
<?php get_header(); ?> <article> <div id="main"> <h3>Category : <?php single_cat_title(); ?></h3> <ul> <?php if(have_posts()): while(have_posts()): the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; endif; ?> </ul> <div id="pager"><?php wp_pagenavi(); ?></div> </div> <div id="sidebar"> <?php dynamic_sidebar(); ?> </div> <div class="clear" /> </article> <?php get_footer(); ?> |
このままでは、ダッシュボードで設定している「1ページに表示する最大投稿数」と同じ数しかタイトルが表示されません。
そこで、カテゴリーページでは、設定に関係なく30件表示されるようにしてみます。
functions.phpに、以下のような関数とアクションへの登録を追加します。
1 2 3 4 5 6 |
function category_show_30_posts($wp_query) { if ($wp_query->is_main_query() && $wp_query->is_category()) { $wp_query->set('posts_per_page', 30); } } add_action('pre_get_posts', 'category_show_30_posts'); |
2行目:カテゴリーページを表示しようとしているか(is_category)判別
3行目:ページに表示する件数(posts_per_page)を30に設定
6行目:投稿を取得する前(pre_get_posts)に、本関数(category_show_30_posts)が呼ばれるように設定
[…] WordPress:カテゴリーページをタイトル一覧表示にする […]
[…] カテゴリーページをタイトル一覧表示にする – devlog [naru design] […]