WordPressのカテゴリ別ページを、記事タイトルによるリスト表示にする


WordPressの場合、サイドバーのカテゴリ一覧からカテゴリ別ページに進むと、そのカテゴリに属する記事が、全文で表示されます。

「つづきを読む」までの序文がすべて表示されるので、記事が少ないうちは分かりやすいのですが、記事が多くなってくると、目的の記事を探しだすのが難しくなります。それで、全文ではなく、記事のタイトルだけをリスト表示させるようにしました。ScreenClip2

PHPが分かればもっと簡単にできると思うのですが…何も知らない素人であるわたしが探したところ、以下の3通りの方法にたどりつきました。どれかが難しくても、他の方法ならできるでしょう。なお、使用しているテーマはTwenty Elevenです。

1.全文表示ではなく、抜粋表示にする

2.category.phpを編集する

3.プラグイン「DC nicer archive」を使う

スポンサーリンク

1.全文表示ではなく、抜粋表示にする

純粋なリスト表示にはなりませんが、一覧に表示される文字数は少なくなり、見やすくなります。この方法は最も簡単です。

1.content.phpの子テーマをつくる

子テーマの作り方については以下のエントリをご覧ください。

Twenty Elevenを自分好みにカスタマイズする3つの方法 |

2.content.phpを書き換える

ダッシュボード左パネル→外観→テーマ編集 から、子テーマのcontent.phpの、以下の赤字の部分を探します。

</header><!-- .entry-header -->

<?php if ( is_search() ) : // Only display Excerpts for Search ?>
<div class="entry-summary">
<?php the_excerpt(); ?>
</div><!-- .entry-summary –>

それを以下の緑字の記述に書き変えます。

<?php if ( is_search() || is_category() ) : ?>

これで、カテゴリ別表示にしたとき、全文ではなく抜粋が表示されるようになります。

2.category.phpを編集する

はじめにことわっておくと、この方法はうまくできませんでした。わたしの知識の範囲では方法が分かりません。そのため、他サイト様の記事の紹介にとどめておきます。

WordPressカテゴリーページに該当記事タイトル一覧を表示させるカスタマイズ - 横浜でHP制作・IT事務・テープ起こしを行う会社ブログ

wordpressのカテゴリで記事タイトルをリスト表示させる方法 - sorarium

WordPress: カテゴリー選択時に記事タイトルなど必要情報のみリスト表示 | Chase Your Dream !

hyperpup » カテゴリを選ぶとタイトルリストに

どのサイトの説明も、基本的な流れは2つのステップからなっているようです。

1.プラグインCustom posts per pageを入れる。
このプラグインのphpを書き換えることで、カテゴリ表示にしたときに表示されるリストの件数を変えることができます。たとえば、トップページは5件だけ全文表示するようにして、カテゴリ表示は100件リスト表示する、といったことができます。

2.子テーマのcategory.phpを書き換える
書き換えるコードは各ページに載せられています。ただわたしのTwenty Elevenではうまくいきませんでした。もし、カテゴリの一覧表示ではなく、アーカイブの一覧表示をリストにしたい場合は、archive.phpを編集します。

この方法でできるようなら、スマートで望ましいでしょう。

3.プラグイン「DC nicer archive」を使う

わたしのサイトで実践している方法です。

1.Internet ArchiveからDC nicer archiveをダウンロードする

DC nicer archiveを配布しているサイトは使えなくなっています。そこで、ネット上のあらゆる記事をバックアップしていた団体、Internet Archiveのサイトから、DC nicer archiveを探し出し、ダウンロードします。以下が該当のページです。

David’s Access > WP-Plugin: DC’s Nicer archives
リンクを押してしばらくすると、目的のページに飛びます。そこのDownload 1.1 here.から、DC nicer archiveのzipファイルを入手できます。

この情報は以下のページを参考にしました。

「DC's Nicer archives」公開ページが消えていてもダウンロードは可能 - Sakura scope

2.nicer_archives.phpを書き換える

zipファイルを解凍すると、DC_nicer_archveswp-contentplugins の中に nicer_archives.phpというファイルがあります。これを、メモ帳などのテキストエディタで開いてください。できるなら、TeraPadのようなフリーソフトのほうが望ましいです。

テキストエディタにより、以下の数カ所を書き換えます。

function cat_header_link() {
global $posts, $post;
if (!is_full() && (count($posts) > 0)) {
$output = ' ('.count($posts).') <a href="'.get_category_link($post->post_category) .'&full=1" rel="bookmark" title="Permanent Link: '.$category_name. '">Expand</a>';}
elseif (count($posts) > 0) {$output = ' ('.count($posts).') <a href="'.get_category_link($post->post_category) .'" rel="bookmark" title="Permanent Link: '.$category_name. '">Collapse</a>';}
else {$output = $category_name.' ('.count($posts).')';}
return $output;

赤字の箇所を

category_id

に書き換えます。

 

さらに

function order_query($query_string) {
global $doing_rss;
if (!empty($query_string) && !$doing_rss) {
$query_string .= '&orderby=title&order=asc&posts_per_page=9999';
}

赤字の箇所を

&posts_per_archive_page=-1

に書き換えます。 また、EXPAND機能というリスト表示から通常の表示に戻す機能について不具合が報告されているので、以下の部分を削除します。

 

<a href=”‘.get_category_link($post->post_category) .’&full=1″ rel=”bookmark” title=”Permanent Link: ‘.$category_name. ‘”>Expand</a>

<a href=”‘.get_category_link($post->post_category) .’” rel=”bookmark” title=”Permanent Link: ‘.$category_name. ‘”>Collapse</a>

こうして修正したphpファイルを上書き保存し、「DC nicer archive」という名前の新しいフォルダを作って、その中に入れます。そのフォルダを、FTPソフトで、自サーバーの/www/wordpress/wp-content/pluginsにアップロードします。

最後にダッシュボードの左パネル→プラグイン→インストール済みプラグインから、DC nicer archiveを有効化して、このステップは完了です。この説明は、以下のサイトを参考にさせていただきました。

WordPressでカテゴリーのリスト表示 | IDEA コピーライターの雑記帳

WordPressで検索結果とアーカイブをリスト表示にしたかった - ブログだった

3.子テーマのcategory.phpを置き換える

解凍したzipファイルの、DC_nicer_archveswp-contentthemesdefaultにarchive.php、category.php、search.phpというファイルがあります。このうち、リスト表示に変えたいページに該当するものを、子テーマの対応するファイルと置き換えます。今回は、カテゴリ別ページを変更したいので、category.phpを使います。

FTPソフトで、自サーバーの/www/wordpress/wp-content/themes/(子テーマ名)のフォルダの中に、category.phpをコピーします。もし、もともとcategory.phpがあるようなら、バックアップをとってから上書きしてください。

なお、このサイトでは、カテゴリ別ページにサイドバーが表示されるとレイアウトが崩れたので、category.phpから最下部の<?php get_sidebar(); ?>を削除しています。この部分だけが心残りです。

とはいえ、Twenty Elevenはレスポンシブデザインであり、スマートフォンなどからの閲覧ではどのみちサイドバーは下の方に消えてしまうので、メニューバーかフッターエリアにカテゴリ一覧へのリンクを載せておくことにしました。

以上で、カテゴリ別ページの表示が、記事タイトルの一覧になるはずです。お疲れさまでした。妙に苦労したので、本当はもっと単純な方法があるような気がしますが、素人にはわかりませんでした。

最後のステップについては以下のエントリを参考にさせていただきました。

WORK NOTE BLOG » Blog Archive » WordPressのカテゴリーページを記事タイトルのリスト表示にする

 

※追記
その後、記事の増加とスマートフォンなどからの閲覧性を考慮して、アイキャッチ画像と抜粋も表示することにしました。

ScreenClip

詳しくは以下のエントリをご覧ください。

労力を使わず各記事にアイキャッチ画像を設定する4つの方法

スポンサーリンク

スポンサーリンク
WordPress