1

我对 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);

?>

4

2 回答 2

1

您是否看到了 Wordpress 生成的 SQL 查询以了解是否正常?

在 query_posts 调用之后,把这个:

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

如果 WP 正在编写意外查询,我建议您使用带有 get_posts 的post_where过滤器而不是 query_posts

于 2012-06-08T22:41:11.943 回答
0

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

'meta_query' => array(
        array(
            'key' => 'cp_tips',
            'value'=> $meta
        ),
         array(
            'key'=> 'cp_city',
            'value'=> $pilseta
)
于 2012-06-27T19:53:51.007 回答