如何在末尾添加数组-de -en -es的每个值?

时间:2018-11-16 16:12:58

标签: php wordpress

我制作了一个用于标签过滤的插件 我想知道如何在每个标签的末尾添加-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;
}

1 个答案:

答案 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等附加到每个标签。