LoginSignup
5
4

More than 5 years have passed since last update.

Bogo プラグインで、WP_Query の言語絞り込みを指定&解除する

Last updated at Posted at 2015-08-05

WordPress の多言語化プラグイン「Bogo」の、公式ページにはまだ載っていない機能です。3月7日に行われた WordBench 福岡にて作者の三好さん直々に教えていただいたので共有します。

まず、言語指定をする方法

この方法は WordPress 日本語フォーラムで三好さんが回答してました。

Bogo では、 WP_Query の中を現在表示している言語で絞り込んでいます。

手動で指定する場合はこうです。

singular.php
$query = new WP_Query();
$args = array(
    'post_type' => 'post',
    'posts_per_page' => 10,
    'lang' => 'ja'
    );
$posts = $query->query( $args );

lang パラメタでロケール値を指定します。配列を渡すことはできません。

言語指定を解除するには

デフォルトではいずれかの言語が設定されているので、全ての言語の記事を持ってきたい場合は、解除しなくてはなりません。
bogo_suppress_locale_query パラメタをセットするだけです。

singular.php
$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 に自動で指定されます。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4