在wordpress查询中排除/不等于多个值

时间:2015-05-31 21:23:59

标签: php wordpress

我修改过Wordpress查询。

我需要排除三个值,但无法弄清楚如何做到这一点。我看过很多人传递多个值来匹配但不排除。我在几个小时内尝试了几件事。

$popularpost = new WP_Query( array( 'posts_per_page' => '12', 
'cat' => $cat_id,
'posts_type' => 'post',
'paged' => $paged, 
'meta_key' => 'post_price', 
'meta_value' =>'SWAP', 'FREE', 'WANTED',
'meta_compare' => '!=',

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

这里有一个问题:

'meta_value' =>'SWAP', 'FREE', 'WANTED',

在这种情况下,meta_value设置为SWAPFREEWANTED只是数组中的单独条目。像这样写出你的代码揭示了问题:

array( 
    'posts_per_page' => '12', 
    'cat' => $cat_id,
    'posts_type' => 'post',
    'paged' => $paged, 
    'meta_key' => 'post_price', 
    'meta_value' => 'SWAP', 
    'FREE', 
    'WANTED',
    'meta_compare' => '!=',
    ...
)

我认为这就是你想要的:

'meta_value' => array('SWAP', 'FREE', 'WANTED'),

答案 1 :(得分:1)

我能够使这个工作,以及我使用的代码,以防任何人感兴趣

    $popularpost = new WP_Query( array( 'posts_per_page' => '12', 
                        'cat' => $cat_id,
                        'posts_type' => 'post',
                        'paged' => $paged, 
                        'meta_key' => 'post_price', 
                        'meta_query' => array(
    array(
        'key' => 'post_price', 
        'value' => 'SWAP',
        'compare' => '!='

    ),
    array(
        'key' => 'post_price', 
        'value' => 'FREE',
        'compare' => '!='

    ),
    array(
        'key' => 'post_price', 
        'value' => 'WANTED',
        'compare' => '!='

    )
    ),
    ) );