Wordpress元键搜索

时间:2012-06-07 09:25:59

标签: wordpress

我在wordpress元关键关系和搜索参数方面遇到了一些问题。我不能让这个工作:

?meta_value=Dažādi&id=32&cp_city=Cēsis

搜索结果仅按meta_value过滤,而不是按cp_city和meta_value过滤。

cp_city也是元键值。

但是这个电话正在工作和过滤:

?meta_value=Pārdod&id=32

我需要通过两个或三个参数进行过滤。

这是要过滤的功能代码。

<?php

if (empty($pilseta)) {
     $args=array(
    'post_type'          => 'ad_listing',
    'post_status'        => 'publish',
    'meta_key'           => 'cp_tips',
    'meta_value'         => $meta,
    'paged'              => $paged,
    'tax_query'          => array(
        array(
            'taxonomy' => 'ad_cat',
            'terms' => $cat_id,      
            'field' => 'id'
        )
    )
);
}
else {
    $args=array(

    'post_type'          => 'ad_listing',
    'post_status'        => 'publish',
    'meta_query' => array(
        array(
            'meta_key'           => 'cp_tips',
            'meta_value'         => $meta
        ),
         array(
            'meta_key'           => 'cp_city',
            'meta_value'         => $pilseta
        ),
    ),
    'paged'              => $paged,
    'tax_query'          => array(
        array(
            'taxonomy' => 'ad_cat',
            'terms' => $cat_id,      
            'field' => 'id'
        )
    )
);
}



query_posts($args);

&GT;

2 个答案:

答案 0 :(得分:1)

您是否看到Wordpress生成的SQL查询知道是否可以?

在query_posts调用之后,输入:

<?php global $wpdb; echo $wpdb->last_query; ?>

如果WP写了一个意外的查询,我建议你使用posts_where过滤器和get_posts而不是query_posts

答案 1 :(得分:0)

更改下面的meta_key args文件并尝试:

'meta_query' => array(
        array(
            'key' => 'cp_tips',
            'value'=> $meta
        ),
         array(
            'key'=> 'cp_city',
            'value'=> $pilseta
)