松田税理士事務所ブログ > HP戦略 > WordPressでカテゴリー別記事ページを作成する方法

WordPressでカテゴリー別記事ページを作成する方法


 ブログソフトと言えば、昔はMovableTypeが主流でしたが、今はWordPressです。ブログソフトの代名詞と言ってもいいかもしれません。昨年の秋にWordPressに移行するまでは、私はずっとMovableTypeを使っていました。ライセンス契約切れのタイミングでWordpressに移行しました。

 同業者や趣味のブログを見ていて、いつも思っていたことは、WordPressのブログには過去記事一覧やカテゴリ別過去記事一覧のページが少ないということです。アクセシビリティを考えると、過去記事一覧やカテゴリ別過去記事一覧のページは必須と思うのですが、意外にこれらのページを設置しているブログは見かけないのです。


 その原因として、WordPressのテーマ自体にそのようなページがそもそもないのが原因だと思います。理由はいろいろあるのかもしれませんが、「ページが重たくなる」ことを避けるためではないかと思います。ページを動的生成しているWordPressの欠点です。これが、私が長年WordPressを避けてきた理由でもあります。ちなみにMovableTypeはHTMLを静的生成しています。

 ページを動的生成するWordPressの場合、何千ページもあるサイトでは、そもそもサーバーに負担がかかり、過去記事一覧やカテゴリ別過去記事一覧のページを設置するのが現実的に難しいのかもしれません。しかし、ページがそれほど多くなく、サーバー環境が許すのなら、過去記事一覧やカテゴリ別過去記事一覧を設置するのが、アクセシビリティの観点から良いと思います。

 というわけで、本日のエントリーは、Wordpressでカテゴリー別過去記事一覧のページを作成する方法を解説します。(過去記事一覧ページの作成方法は後日の予定です。)

カテゴリー別記事一覧表示のソースコード

結論から言うと、以下のソースコードにより「カテゴリー別過去記事一覧」のページを作成することができます。

 表示件数の設定は、11行目の「’&numberposts=100」で設定します。0に設定すると全ページ表示されます。
「&orderby=date&order=DESC’);」は表示順の設定です。以下のソース場合は、各カテゴリーごとに100ページまで、投稿日順に表示されます。3行目「get_categories();」で全カテゴリーの情報を取得します。

<h3 class="page-title"><?php the_title(); ?></h3>
<?php
$cats = get_categories('parent=0&hide_empty=0');
foreach ($cats as $cat) :
$desc_cats = get_categories('child_of=' . $cat->term_id);
$desc_cat_ids = array($cat->term_id);
foreach ($desc_cats as $desc_cat) {
array_push($desc_cat_ids, $desc_cat->term_id);
}
$desc_cat_ids_str = implode(',', $desc_cat_ids);
$cat_posts = get_posts('category=' . $desc_cat_ids_str . '&numberposts=100&orderby=date&order=DESC');
if ($cat_posts) : ?>
<h2><a href="<?php echo get_category_link($cat->term_id) ?>"><?php echo $cat->name; ?></a></h2>
<ul>
<?php foreach ($cat_posts as $post) : setup_postdata($post); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>(<?php the_time('Y年m月d日'); ?>)</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<?php endforeach; ?>

Simplicityテーマの設定

 このブログは、Simplicityというテーマを使っています(2017年12月3日現在)。このテーマの場合は、以下のように設定することによりカテゴリー別記事一覧ページを作成することができます。PHPファイルを作成して「page-template」フォルダにアップロードします。(herder,footerなどは、メインインデックスファイルを参考に作ります。) 次に、固定ページで新規追加をクリックして、テンプレートから作成したファイル名を選択すると完了です。当ブログのカテゴリ別記事一覧ページはこちらです。

 カテゴリー別過去記事一覧のページと同様に大切なのでが、過去記事一覧です。次回のエントリーでは、過去記事一覧ページの作り方を書いてみたいと思います

参考にしたサイト
WordPress Codex 日本語版


[前の記事]
[次の記事]