WordPress多言語対応サイトでサブループ(get_posts)を使用した際、出力される記事一覧に複数言語の投稿が混在するケースに出くわしました。
このページでは、その際の対処法をメモしておきます。
WordPress多言語対応サイトの記事一覧(サブループ)で他言語の記事が混在しないようにする方法
<?php
$posts = get_posts(array(
'numberposts' => 10, //投稿の表示数
'suppress_filters' => 0 //フィルタリングを無効にするか(「false」または「0」で有効になる)
));
foreach($posts as $post):
?>
//ここにループの内容
<?php
endforeach;
wp_reset_postdata();
?>
サブループを取得するget_post()で「suppress_filters」というパラメーターを指定します。
「suppress_filters」はフィルターの無効・有効を指定するパラメーターで、true(または1)でフィルターが無効、false(または0)でフィルターが有効になります。
デフォルトではtrueなので、フィルターが無効の状態になっています。
そのため多言語対応サイトでは、サブループに複数言語の投稿が混在してしまうということのようです。
- 参考ページ
- get_posts() | Function | WordPress Developer Resources
- テンプレートタグ/get posts