WordPressにおいてカテゴリーページの作成方法について、2020年時点でオススメなPHPの記述方法について以下にまとめておきたいと思います!
目次
カテゴリーページに表示させたい見本のHTMLコード
まず、カテゴリーページに表示させたいHTMLコードの見本を以下としたいと思います。
<ul> <li><a href="記事ページへURL">記事タイトル</a></li> <li><a href="記事ページへURL">記事タイトル</a></li> <li><a href="記事ページへURL">記事タイトル</a></li> <li><a href="記事ページへURL">記事タイトル</a></li> <li><a href="記事ページへURL">記事タイトル</a></li> </ul>
WordPressの記事を取得・表示させるためのPHPコード
まず、WordPressにおいてカテゴリーページを作成するにはcategory.phpを作成することで、カテゴリーページはこのPHPファイルを読み込んで表示させてくれるようになります。
そのためcategory.phpにWordPressの記事を取得・表示させるPHPコードを記述することで、カテゴリーページが実装可能になります!
では早速ではありますがWordPressの記事を取得・表示してくれるPHPコードは以下になります!
<?php $paged = get_query_var('paged')? get_query_var('paged') : 1; $cat_now = get_queried_object(); $args = array( 'cat' => $cat_now->cat_ID, 'post_type' => 'post', 'posts_per_page' => 10, 'paged' => $paged ); $myposts = new WP_Query($args); ?> <?php if($myposts->have_posts()): ?> <ul> <?php while($myposts->have_posts()): $myposts->the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; ?> </ul> <?php endif; wp_reset_postdata(); ?>
条件に合った場合に記事一覧を表示
上記のPHPコードにおいて1〜11行目にてカテゴリーページにおける表示条件を指定しています。
そのうえで12行目の
<?php if($myposts->have_posts()): ?>
と24行目の
<?php endif; wp_reset_postdata(); ?>
にて該当する記事がある場合は記事一覧を表示させる…という設定にしています。
そのため、もし該当する記事がない場合は記事一覧のHTML自体が出力されないという仕様になっています!
表示件数の設定
続いて表示件数を指定しているのが見本コードの7行目に記述してある
'posts_per_page' => 10,
になります。
今回はカテゴリーページにて10件の記事を表示させたい…という前提で10という数値を設定しましたが、例えば5件表示させたい場合は
'posts_per_page' => 5,
と数字を変えてあげることで表示件数を5件にすることができます。
また、カテゴリーページにて記事全件表示させたい場合は
'posts_per_page' => -1,
と-1を設定することで記事全件を表示させることも可能になります!
(が、記事全件表示はページ自体の表示スピードを遅くする恐れがあるので、あまりオススメはできません…)
ループ(繰り返し)で表示させたい要素を記述
実際の記事一覧部分、ループ部分に関しては見本コードの16行目
<?php while($myposts->have_posts()): $myposts->the_post(); ?>
と20行目
<?php endwhile; ?>
の間に記述したものが表示件数分表示されるようになります!
ので、ここに記事一覧のメイン部分
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
を記述することでループで表示させることが可能になります!
まとめ
急ぎ足にはなりましたが、上記のコードをcategory.phpに記述することで該当するカテゴリーの記事一覧を取得・表示してくれるようになるので、ご参考になれれば…と思います。。。!