the_excerptで出力される文字数を変更したいなと思うことって結構多いと思うんですが、以前に以下のようなコードをfunctions.phpに記述することで対応しようとしていて躓いたことがあります。
function change_excerpt_length( $length ) {
return 55;
}
add_filter( 'excerpt_length', 'change_excerpt_length' );
これについては以前「the_excerpt」の文字数でも記述しました。
WordPress標準テーマ『Twenty Eleven』のfunctions.phpにも同様のコードが記述されています。
ただ、これだけだとうまくいかないんですよね。『return 55;』のところの数値を変更しても文字数が変化しません。
というわけで、その原因と対応方法を2パターンほど。
最重要なのは『WP Multibyte Patch』
前提条件として、WordPressをインストールすると標準で入っている『WP Multibyte Patch』というプラグインを有効にしておく必要があります。
WordPressを使う人なら普通はこれをすぐに有効化すると思います。私がWordPress使い始めの頃にはこれを行なっていませんでした。WordPress自体はとりあえず動作するので、気にならなかったんですよね。
で、これが原因となって、いざ「the_excerpt」を使うとなった時に何をしても文字数が変えられない、という状況に陥りました。
というわけで、マルチバイト環境で使用する場合にはまず『WP Multibyte Patch』を有効化することが必要です。
『WP Multibyte Patch』の設定ファイルを使う
後で文字数を変更する可能性が低いなら、この方法の方が簡単かもしれません。PHPの知識がほぼ必要ないので。
まず『WP Multibyte Patch』のフォルダで『wpmp-config-sample.php』というファイルを探します。パスは以下。
(WordPressインストールフォルダ)/wp-content/plugins/wp-multibyte-patch/
そのファイルを『wpmp-config.php』という名称に変更して『wp-content』フォルダ内に保存します。
ファイル内の『$wpmp_conf[‘excerpt_mblength’] = 110;』という部分が文字数を設定する部分です。以下のようにファイル先頭付近にあります。
<?php
/* WP Multibyte Patch global config file */
// WordPress Settings
$wpmp_conf['excerpt_length'] = 55; // Maximum word count for ascii posts.
$wpmp_conf['excerpt_mblength'] = 110; // Maximum character count for multibyte posts.
$wpmp_conf['excerpt_more'] = ' [...]'; // More string at the end of the excerpt.
$wpmp_conf['comment_excerpt_length'] = 20; // Maximum word count for ascii comments.
$wpmp_conf['comment_excerpt_mblength'] = 40; // Maximum character count for multibyte comments.
『110』を希望の値に変更してください。
これでOKです。
フィルターフック『excerpt_mblength』を使う
こちらの方法の方が、後々の変更もしやすいかもしれません。
functions.php内に以下のコードを記述します。
function change_excerpt_mblength($length) {
return 110;
}
add_filter('excerpt_mblength', 'change_excerpt_mblength');
つまり、WP Multibyte Patchのフィルターフック『excerpt_mblength』を使います。文字数は『110』の部分を希望の値に変更してください。あとは特に説明が必要ないくらい簡単なコードですね。
PHPのコードを直接触っているとは言え、こちらもfunctions.phpにコピー・ペーストして数値を変更するだけなので難しいことは無いと思います。
使用はどちらでも使いやすい方を使えば良いと思います。
ピンバック: 記事タイトルを 文字数 で切り詰めたい…☆! | ワードプレスをいじるんだぜ☆!
ピンバック: 記事本文を先頭何文字だけ、抜粋しようぜ☆! | ワードプレスをいじるんだぜ☆!
ピンバック: 10月7日(金)Webサイト制作演習③(CMS演習13) | インタープランITスクール新横浜校