WordPressのマルチサイトを用いた多言語子サイトにおける抜粋長さ設定
主題
WordPressで、マルチサイトを用いて多言語の子サイトを運用している場合に、PHPで、抜粋長さを調節する方法について述べる。
背景
筆者は、WordPressで、マルチサイトを用いて多言語の子サイトを運用(と言っても、2言語だが…。)している。そこで、英語版の記事のみ、抜粋が効かない問題に遭遇し、困惑した。
抜粋自体はサイトカスタマイズ -> 設定に抜粋の長さという設定項目があり、これを調節すれば良い事が分かったが、言語の数、すなわち子サイトの数が増えたら大変だと思い、PHPによる調節を考えるに至った。
前提条件
PHP内容
子テーマのfunctions.phpに記述する内容は、以下の通り。
<?php
/**
* 現在のロケールを取得
*/
$locale = get_locale();
/**
* 言語コードにより、抜粋長さを変更
*/
function custom_excerpt_length( $length ) {
global $locale;
if ($locale == 'ja'){
return 110; /* この数字で日本語版の抜粋長さが変わる。 */
} else {
return 30; /* この数字でその他の版の抜粋長さが変わる。 */
}
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
?>
上記スクリプトにおいて、
-
11行目のcustom_excerpt_length関数の基本形は、こちらから引用した。
-
13行目のglobal $locale;宣言は、$localeをもう一つの関数でも共有するために行った。
-
15~22行目のif〜elseブロックの分岐を増やせば、より多くの言語に対応できる。
以上。
この投稿へのトラックバック
トラックバックはありません。
- トラックバック URL
この投稿へのコメント