Blog

WordPress多言語対応サイトの記事一覧(サブループ)で他言語の記事が混在しないようにする方法

2021.06.08 WordPress
WordPress多言語対応サイトの記事一覧(サブループ)で他言語の記事が混在しないようにする方法

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なので、フィルターが無効の状態になっています。

そのため多言語対応サイトでは、サブループに複数言語の投稿が混在してしまうということのようです。