我制作了一个用于标签过滤的插件 我想知道如何在每个标签的末尾添加-de -en -es? 我有一个多语言网站,每次都写 red-de,red-en,red-es,不舒服。
add_filter('pre_get_posts','exc_post');
function exc_post($query) {
if ($query->is_category || ($query->is_home || ($query->is_feed) || ($query->is_tag)))
{
$X0 = plugin_dir_url( __FILE__ );
$X0x = file_get_contents( $X0 . 'Text.txt');
$X1 = explode (",", $X0x);
$query->set('tax_query', array(
array(
'taxonomy' => 'post_tag',
'field' => 'slug',
'terms' => $X1,
'operator' => 'NOT IN'
)
));
}
return $query;
}
答案 0 :(得分:1)
您可以使用array_map()为每个标签添加前缀,并使用pll_current_language()检索当前的语言标签:
add_filter('pre_get_posts','exc_post');
function exc_post($query) {
if ($query->is_category || ($query->is_home || ($query->is_feed) || ($query->is_tag)))
{
$X0 = plugin_dir_url( __FILE__ );
$X0x = file_get_contents( $X0 . 'Text.txt');
$X1 = explode (",", $X0x);
// Append lang code to every tag
$X1 = array_map('add_lang_suffix', $X1);
$query->set('tax_query', array(
array(
'taxonomy' => 'post_tag',
'field' => 'slug',
'terms' => $X1,
'operator' => 'NOT IN'
)
));
}
return $query;
}
function add_lang_suffix($tag) {
return $tag . '-' . pll_current_language();
}
这将自动将-de
,-en
,-es
等附加到每个标签。