【WordPress】投稿一覧やカテゴリーアーカイブで、全文表示から抜粋表示に変更する方法

はじめに

投稿記事を一覧できるページがあったら便利です。WordPressではそのページのことを投稿ページと呼んでいます。下図のように、投稿ページにあらかじめ作成しておいた固定ページを設定すると、固定ページに投稿記事一覧が表示されるようになります。(下図の”投稿一覧”は作成した固定ページの名前です)

最大投稿数を10件に設定しているので、投稿一覧のページに10件表示されるのですが、すべて記事全文が表示されていました。

一覧表示で記事全文を表示するのはどうなの?と思ってしまうのですが、テーマの作者によって、全文表示か抜粋表示かが選択されているようです。

このサイトで使用しているテーマの親テーマであるTwenty Thirteenも全文表示を採用しており、その変更方法について書いていきます。使用しているテーマによって結構違うみたいなので、Twenty Thirteen以外だと使用できません。

抜粋表示への変更方法(Twenty Thirteen)

レンタルサーバーのファイルマネージャから、以下のファイルを開きます。

WordPressのメニューからでも開けますが、ファイルのバックアップを取るためにレンタルサーバー側からファイルを開きました。まず、ファイルのコピーを取っておくことをお勧めします。

ファイルのある場所ですが、私の場合、使用しているテーマではなく、親テーマのtwentythirteenの方にお目当てのcontent.phpファイルがありました。

ファイルを開き、以下の部分を探します。赤枠で囲った部分を変更します。

赤枠で囲った部分を以下のコードに変更します。

if(is_single()){
	the_content(
		sprintf(
			/* translators: %s: Post title. */
			__( 'Continue reading %s <span class="meta-nav">→</span>', 'twentythirteen' ),
			the_title( '<span class="screen-reader-text">', '</span>', false )
		)
	);
}else{
	the_excerpt();				
}

変更したのが以下です。

保存したら作業完了です。

これで、投稿一覧を表示する場合や、カテゴリーの1つを選択し一覧表示する場合に抜粋表示に変更されます。

おわりに

今回の変更は、if文でis_single()が真の場合と偽の場合に分けて、真(個別表示)ならthe_content()を使用し、偽(それ以外)ならthe_excerpt()を使用するように変更しただけです。sprintf()の中身は変更していないので、実質、4行追加しただけです。

他のテーマでも構造が似ていればうまくいく可能性はありますが、なるべくなら使用しているテーマでの変更方法を探すほうが良さそうです。