WordPress カテゴリ内のページタイトル一覧を表示させる
Wordpressの場合、サイドバーに表示されるカテゴリーのクリック時には、通常のページが表示されることが多いですね。そこで、カテゴリーに属しているページのタイトルを一覧として表示させたい場合、カテゴリ用テンプレートの改造が必要となります。
まず、カテゴリー用のphpファイルが有る場合は、そのまま使用できますが、テーマによってはcategory.phpが無い場合があります。そんな時、アーカイブ用php(archives.php)でも良いのですが、今回はcategory.phpを新規に作ることにしました。
Wordpressの場合は、各ファイルを自動的に読み込みますので、category.phpもarchives.phpも無い場合はindex.phpを呼び込みます。
※自動で呼び込むファイルは確認しておくと良いでしょう。
さて、カテゴリーをクリックした時に、一覧表が表示されるようにしたい場合、redtower’s memoさんのサイトが大変参考になり、そのコードを使用させてもらいました。ありがとうございます。
ただし、CSSの記述はそのテーマによって異なりますので、組み込む場合は独自のCSSタグを作成して、style.cssに追記することで自由なデザインが可能となります。
1:カテゴリー用のテンプレート(category.php)が無い場合は、 index.php をrchives.php と名前を変更してアップします。アップ先はテーマ内のフォルダ(ディレクトリ)になります。
アップした時点で WordPress は自動的に archives.php も呼び込みます。まず、ページが認識されているかどうかは、2通りの確認をしてみてください。
一つは、外観⇒テーマ編集ページの右にカテゴリテンプレート(category.php)と表示されていることを確認し、更にそのファイルを編集して上書きできるかを確かめます。
動作が確認できたら次に進みます。
2:archives.php の改造
<?php get_header(); ?>
<?php get_sidebar(); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> などは残しておき、
以下のタグを貼付します。
———-ここから————————————————
<h2>カテゴリ内のページ一覧</h2>
<div class=”任意のクラス名”>
<span>カテゴリー名: <?php the_category(‘,’) ?></span>
</div>
<p>▼下記一覧をクリックしますと、詳細ページが表示されます。</p>
<ul>
<?php
$cat = get_query_var(‘cat’);
$posts = get_posts(“order=asc&category=$cat&numberposts=99″);
?>
<?php foreach($posts as $post):?>
<li><a href=”<?php the_permalink() ?>”><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
————-ここまで———————————————–
テーマによっても異なりますが、この下にもコードがありますのでそれらは残しておきます。
消す場合は、コメントアウトをしておくと良いでしょう。 このように挟むと良いです。
<!–コメントアウトしたいソース–> (半角で記入します)
3:成功すると以下のように表示されます。デザインの微調整はCSSファイルで行いましょう。






