按标签Wordpress过滤元查询

时间:2015-08-02 16:00:12

标签: php wordpress-plugin wordpress

我目前有多个页面,每个页面都是一个自定义字段,名为“country”。

在'country'字段中,我有这个值'uk,usa,brazil'。

我想要做的是在页面上显示我在自定义字段“country”中列出的标签的帖子(在这种情况下显示帖子中有任何标签'uk','usa'和'巴西')。

我有以下代码,但我不知道如何操作它来执行上述操作?

$args = array (
    'post_type'              => array( 'post' ),  // YOUR POST TYPE
    'meta_query'             => array(
        array(
            'key'       => 'country',  
            'value'     => $your_country,  // THE COUNTRY TO SEARCH
            'compare'   => 'LIKE',  // TO SEARCH THIS COUNTRY IN YOUR COMMA SEPERATED STRING
            'type'      => 'CHAR',
        ),
    ),
);

// The Query
$query = new WP_Query( $args );

似乎只是过滤单个值?

非常感谢任何帮助实现上述目标。

1 个答案:

答案 0 :(得分:1)

我设置了一个自定义分类法来创建另一个名为“country”的'tags'版本,然后你可以改为进行分类查询。

请参阅“自定义帖子类型UI”以获得创建自定义分类的简单界面。

https://wordpress.org/plugins/custom-post-type-ui/
  1. 安装CPT UI(上面的插件)。
  2. 转到菜单中的“添加/编辑分类标准”。添加“国家/地区”作为分类。将其附加到“post”post_type和“page”。
  3. 标记页面(用于显示帖子)和带有国家/地区标签的“帖子”。
  4. 然后,您可以在页面模板中使用自定义wp_query,以显示标记为国家/地区标记的帖子。

    要获取与您的网页相关联的国家/地区字词ID:

    $ countryTerms = wp_get_post_terms($ post-> ID,'country',array(“fields”=>“ids”));

    然后更改您的Query参数以收集标记为国家/地区的帖子。

    $args = array(
        'post_type' => 'post',
        'tax_query' => array(
            array(
                'taxonomy' => 'country',
                'field'    => 'term_id',
                'terms'    => $countryTerms
            ),
        ),
    );
    

    如果您想坚持使用元字段,请尝试将“TYPE”值更改为“NUMERIC”。