WordPress の多言語化プラグイン「Bogo」の、公式ページにはまだ載っていない機能です。3月7日に行われた WordBench 福岡にて作者の三好さん直々に教えていただいたので共有します。
まず、言語指定をする方法
この方法は WordPress 日本語フォーラムで三好さんが回答してました。
Bogo では、 WP_Query の中を現在表示している言語で絞り込んでいます。
手動で指定する場合はこうです。
$query = new WP_Query();
$args = array(
'post_type' => 'post',
'posts_per_page' => 10,
'lang' => 'ja'
);
$posts = $query->query( $args );
lang パラメタでロケール値を指定します。配列を渡すことはできません。
言語指定を解除するには
デフォルトではいずれかの言語が設定されているので、全ての言語の記事を持ってきたい場合は、解除しなくてはなりません。
bogo_suppress_locale_query
パラメタをセットするだけです。
$query = new WP_Query();
$args = array(
'post_type' => 'post',
'posts_per_page' => 10,
'bogo_suppress_locale_query' => true
);
$posts = $query->query( $args );
どういう場面で解除するの?
私の場合、母語が違う人と、WordPress を使って情報共有しています。
- UI→それぞれの母語
- 記事→全員同じものが出る
というブログを作りたかったので、ぴったりでした!
おまけ
トップページはどの言語が表示されるのか
言語を特に指定しない場合、トップページはブラウザの言語ではなく、サイトでデフォルトに設定した言語が出力されます。WordPress の管理画面から「設定」>「一般」>「サイトの言語」から設定します。
そこから更に、ランゲージスイッチャーで言語を切り替えれば、そのときの言語が WP_Query に自動で指定されます。