WordPress で wp_excerpt()で生成される日本語の抜粋文字数を変更する

WordPressのループ内にて、記事の抜粋文を表示させるテンプレートタグ「wp_excerpt」。
この抜粋文字数を変更したくても思い通りにならず、調べたところ以下のページにたどり着きました。

WordPressで抜粋の文字数を変更する方法: 小粋空間

まず私が勘違いしていたのは、Twenty Tenなどの標準テーマでfunctions.phpなどに記載されている以下のソース。

function twentyten_excerpt_length( $length ) {
return 40;
}
add_filter( 'excerpt_length', ' twentyten_excerpt_length' );

「なんで40文字に設定してあるのに、抜粋文字がその倍以上になっちゃんだよお」と悩んだのですが、そもそもこれは40文字(character)ではなく、40ワード(word)なんですね。
英語では通常、単語はスペースで区切られていますから、スペース40個目までの文章が抜粋されて表示されることになります。
そうなると、日本語の一般的な文章の場合、スペースはあまり使われませんので、下手すると記事丸々1件分が表示されちゃいます。

そのようなマルチバイト文字対策のプラグインとして「WP Multibyte Patch」が最初から標準でインストールされているわけですね。
このおかげでwp_excerptを使うと、全角文字の場合110文字が抜粋されて表示されるようです。
そう、私の場合も110文字でした。
Wordpressは正しく動いていたんですね…。

では、この110文字という設定をどこで変更するのか。
その答えが上記、小粋空間さんの参考ページに書かれていたわけです。ありがたい。

非常にためになりましたが、一箇所だけ気になる部分がありまして、修正後のwpmp-config.phpファイルのアップロード先が違うのかなあ、と。
上記ページは次のように書かれていますが・・・、

修正したwpmp-config.phpをwp-content配下にアップロードします。

この表現だと「直下に置く」と勘違いしてしまいまして、実際、wp-contentディレクトリ直下に置いても動作しませんでした。
で、wpmp-config-sample.phpがあったのと同じディレクトリに置いたところ、無事動作しました。

wpmp-config.phpのアップロード先ディレクトリ
「wp-content/plugins/wp-multibyte-patch/」
つまり、プラグインディレクトリです。

改めて簡単な手順をまとめますと、

  • WP Multibyte Patchプラグインのフォルダ(wp-content/plugins/wp-multibyte-patch/)下のwpmp-config-sample.phpをコピーして、wpmp-config.phpを作成する。
  • wpmp-config.phpの以下の記述の「110」の部分を任意の数字に変更する。
$wpmp_conf['excerpt_mblength'] = 110; 
備忘録 | |