サイドメニューからカテゴリを選んで投稿が表示される時に、タイトルのリストで表示された方が見やすいんじゃないかなとちょっと前から思うようになり、でもこんなの今のテンプレートの機能を使ってcategory.phpだけタイトルのタグだけいれれば簡単だーと安易に考えていつでもできると先延ばしにしていました。
今日試しにやってみたところ、問題が発生しました。それは管理画面で表示投稿数を設定するのと同じ数しかリスト表示されないこと。例えば今だと1ページに5投稿表示する設定にしているのですが、カテゴリを選択すると5個しかタイトルがでてこないことになります。CodexのThe Loopのクエリーや、get_postsのページを見ながら色々やってみますが数は指定できてもカテゴリが全部表示されてしまったりとうまいこといかず。WPのサポートフォーラムで調べていたら、Display title and date only for categories and archivesというまさに同じことしたがっている人の投稿を見つけて、そこで答えていた人のサイトをみたらうまいこと私がやりたいようなことが出来ていました。もう一度フォーラムで今度は表示する投稿数をページ毎に変更する方法で検索しなおして、different number of postsを見つけCustom posts per pageというプラグインを見つけました。これはその名の通り、表示されるテンプレートによって表示される投稿の数を変更できるプラグインで、プラグインをテキストエディタで開いて数を変更できるようになってます。とりあえずhomeに表示されるのだけ今と同じ5に変更してプラグインフォルダに入れて有効化。そうしたらうまいこと表示されるようになりました。このプラグインではcategoryの数は999表示することになってます。大概の場合これ以上の数の投稿って1カテゴリでないだろうし、ここまで行ったら別に次のページにわけて表示してもいいですもんね。その場合はやっぱりページナビゲーションもテンプレートに入れないと次のページへいけませんよね。
とりあえずカテゴリを選ぶとタイトルだけ表示してタイトルを押すと各投稿へ飛ぶようになりました。スタイルは又おいおい設定していこうと思います。
やり方をまとめてみます。サイドメニューのカテゴリを選ぶとそのカテゴリ内の投稿がずらーっとでてくるのではなく、投稿のタイトルのリストを表示し、リストを押すと各投稿が表示されるためには:

  1. プラグインのCustom posts per pageを入れる。
  2. category.phpやarchive.phpを好きな項目だけ表示させるように編集する。

です。プラグインの導入方法は上にも書いたとおり、リンク先のページをテキストエディタにコピペして保存。私はperpage.phpという名前で保存しました。そして、$posts_perで始まる部分の数を[]内のページによって変更。あとはいつものようにプラグインフォルダに入れて管理画面で有効化するだけです。あくまでこのプラグインは、テンプレートによって表示される投稿数を変更するものであって、カテゴリ別にタイトルリストにするためのプラグインではありません。表示される投稿の数が、管理画面で設定した数しかでてこないので(今の私の場合だと5)、タイトルリストもこのままだと5行しか出てこないけれど、リストには全部のタイトルを表示したいのでこのプラグインを使っているだけです。タイトルリストを表示するだけならプラグインは必要なくて、テンプレートの編集(cagegory.php、archive.phpなど)をすればいいだけです。これはCodexのTemplate_Hierarchyに書いてあるように、読み込まれるテンプレートファイルが違ってくるからできることです。最低限必要なテンプレートファイルの他にもTheme_Developmentを見たら付け足せるテンプレートファイルがわかります。
今回はカテゴリを選ぶとWordPressが

  1. category-x.php(xはカテゴリのID)
  2. category.php
  3. archive.php
  4. index.php

の順番でテンプレートファイルを適応させていくことを利用しています。私の場合今は個々のカテゴリ毎にテンプレートを作っていないのでcategory-x.phpというファイルは存在しない為、category.phpが読み込まれています。単純なTHEMEの場合だとテンプレートのファイル数が少なくてindex.phpしかない場合もあります。その場合は新しく作っていけば大丈夫です。私もcategory.phpが無かったのでindex.phpをコピーしてループの箇所を編集しました。もし「このカテゴリだけはタイトルリストじゃなくて投稿をそのまま表示したい」って時はそのカテゴリIDのテンプレートを作成すればいいだけです。
今回のcategory.phpやarchive.phpの編集は、私はdeveloped trafficさんのWordPress Customization Notesを参考に
<ul> <?php if ($posts) : foreach ($posts as $post) : start_wp(); ?>
<li id="catpost-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>"> <?php the_title(); ?></a><br /><?php the_date(''); ?> at <?php the_time() ?></li>
<?php endforeach; else: ?> </ul>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

こんな感じにしました。まだCSSでスタイルをつけてないのでidやclassはまた付け足していこうと思います。リストの<ul></ul>を<ol></ol>に変更すると、題名の最初にふり番がふられます。