WordPressでカテゴリー別記事ページを作成する方法
2017年2月3日 3:31 PM | カテゴリー:HP戦略 | コメント(0)
ブログソフトと言えば、昔は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 日本語版