[WordPress] 抜粋文の文字数と文末記号[…]のカスタマイズ方法

抜粋分の文字数と文末記号[…]のカスタマイズ

WordPressでは、テンプレートタグ the_excerpt() で記事本文から抜粋分を作成することが可能です。

デフォルトだと作成される抜粋文末尾に “[…]” という省略を表す文字列が追加されます。また記事内容の55単語までを表示するのですが、日本語だと55文字分くらいになります。

ここでは、抜粋文末記号[…]と抜粋文の文字数をカスタマイズする方法をまとめます。

抜粋文の文字数を変更する

WP Multibyte Patch を使う

素のWordpressだと日本語を含むマルチバイト文字の扱いで不具合があるようなので、それに対応したプラグイン「WP Multibyte Patch」を入れておきましょう。

本家版、日本語版 WordPress のマルチバイト文字の取り扱いに関する不具合の累積的修正と強化を行うプラグインです。英語圏で作られた WordPress を日本語環境で正しく動作させるために必要となる機能を網羅していますので、なんらかの対策を行っていない場合は導入をおすすめします。

インストールして有効化するだけでOKです。

実装

functions.php に次のコードを追加します。

add_filter('excerpt_length', function( $length ) {
    return 120; // 抜粋文の文字数
}, 100);

アクションフィルター(excerpt_length)をフックすることで、抜粋文の長さを任意の値に変更できます。戻り値で好きな文字数を指定します。

2つめの引数の100は優先順位?ですが、あとから実行されるように100を指定しています。

抜粋文末尾の記号を変更する

同様に functions.php に次のコードを追加します。

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

アクションフィルター(excerpt_more)をフックすることで、抜粋文末尾の記号文字を変更できます。戻り値で任意の文字列を指定しましょう。

上記例だと、”xxxxxxx[…]” となっていた抜粋文が、”xxxxxxx …(略)” と表示されるようになります。

もし、抜粋文の末尾に何も余計な文字をつけたくなければ空文字を返せばよいです。

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

以上。

参考URL