WordPress 自動的に記事を全文表示から抜粋表示にする

使っているテーマによって違うとは思いますが、WordPressは『<!–more–>』を入力しない限り記事を全文表示します。
「<!–more–>を入力しなくても、抜粋で表示して『続きを読む』で個別記事を表示する」という要望はけっこうあると思います。
というわけで、記事一覧を抜粋表示に変更する方法を紹介したいと思います。

僕のテーマは、『Twenty Eleven 1.2』を元に作ったので『Twenty Eleven 1.2』に合わせて説明します。
他のテーマを使用している方は、使用しているテーマに置き換えてお考えください。
それでは、やってみましょ。


PHPの『subStr関数』や『mb_strimWidth関数』を使用する方法もありますが、WordPressには『the_excerpt』という便利なテンプレートタグが用意されているので、今回はテンプレートタグを使用したいと思います。
※日本語はマルチバイト文字なので、色々と不具合もでるみたいです。けど、『WP Multibyte Patch』プラグインを使用することで問題解決するらしいので、入ってない方はインストールしてくださいね!

まずは、テンプレートタグを書き込みます。
テーマのディレクトリ内にある『content.php』の41行目付近に『the_content』があると思います。
この部分を、

the_excerpt();

に、書き換えます。

これで、個別記事以外は抜粋表示に変更されます。
基本的にはたったこれだけです。
抜粋箇所にある画像などは自動的に表示されなくなります。
とっても簡単ですよね><
さすがWordPressって感じです。

ちなみにデフォルトでは、110文字を抜粋して表示されるので、変更したい方は『WP Multibyte Patch』プラグインを編集します。
プラグインを表示し、『WP Multibyte Patch』の下の編集をクリックすると、

'excerpt_mblength' => 110,

と書かれていると思います。
この『110』というのが文字数なので、これを変更します。
50文字を抜粋したいのなら、『110』を『50』に変更し保存すれば50文字抜粋になります。
これもすごい簡単ですね><

『…』という文字を変更したい場合もとても簡単です。
使用しているテーマのディレクトリ内にある『functions.php』に以下のコードを追加するだけです。

function new_excerpt_more($more) {
    return '...';
}
add_filter('excerpt_more', 'new_excerpt_more');

この『return』の後にあるシングルクオート(’)で囲まれた部分が表示されるようになります。
『続きを読む』を変更したい場合は、上記のコードに少し編集を加えます。

function new_excerpt_more($post) {
	return '<a href="'. get_permalink($post->ID) . '">' . '・・・全部見る' . '</a>';
}	
add_filter('excerpt_more', 'new_excerpt_more');

以上が『自動的に記事を全文表示から抜粋表示にする』方法です。
さすがWordPress。簡単に実装できちゃいます!!