さてと久しぶりにWordpressのテーマカスタマイズしてて知った事&ぶち当たった事。

今回は海外の有料テーマ「Extra」をカスタマイズして使おうとしてましたが、
「設定」→「言語設定」を日本語にして、WP Multibyte Patchを有効にするとあちこちに変な変数がそのまま出力される現象に。
もちろん、海外テーマは2バイト文字の事なんぞ何も考慮されてないのでよくある話。

言語設定を英語にしてそのまま使えば良いのだけど、やっぱり管理画面は日本語が良いなあ、と。
と、言語設定が「ユーザー」→「プロフィール」にもある事に気付く。
こちらを日本語にすると、なんと見事に管理画面内だけ日本語に。

おー、なるほど。複数ユーザーで国籍入り乱れてもそれぞれの言語で管理出来るのか素晴らし!と思ったのもつかの間、今度は「抜粋」で出力されるはずの場所が全文出力されている事に気付く。

  • WordPressカードに埋め込まれたテキストが全文出力される
  • RSS Feedの設定を全文設定にしてないのに全文出力される

等々、これは明らかに何かが起こっている。

the_excerpt()で出力されるのはデフォルトでは55文字、WP Multibyte Patchを有効化すると110文字になるというのが、自分の中の知識でしたが、これ文字数ではなくて「単語数」って事の様で。

英文だと半角スペースの数をカウントする、という事でこれを実現しているらしい。
サイトの言語設定を日本語、WP Multibyte Patchを有効した環境だときっちり110文字で抜粋表示されるのだけど、今回はサイトの言語設定を「英語」でWP Multibyte Patchを有効という環境。
そりゃ日本語の文章だと半角スペースなんて1つもありゃしませんわね。
なので、抜粋出力されるはずの所が全文出力されてまう、と。

これを何とか出来ないかと色々調べていたら以下のサイトを見つけました。

WordPress で日本語の抜粋表示を適正化させる(Technotes様)

こちらを読んでみるとWP Multibyte Patchのフォルダ内にwpmp-config-sample-ja.phpというファイルがある。
Wordpress本体のwp-config-sample.phpみたいなものですな。
これをwpmp-config.php にリネームし、/wp-content/に配置してやれば、英語環境でも抜粋が動く様になりました。

ただ、Technotes様の記事を追いかけるとこれではmoreタグや抜粋フィールドも有無を言わさずカットされる様子。
このブログの場合はどちらも使用してないので、今回はこれで対処は打ち止めとなりました。

海外テーマを利用して、言語設定は「英語」で日本語を利用する場合には覚えておいた方が良さそうです。