wordpress 多个Meta密钥提供错误结果

pkln4tw6  于 2023-10-17  发布在  WordPress
关注(0)|答案(1)|浏览(119)

我有一个问题与多个Meta密钥不一起工作。我有100个职位,他们有1 Meta键是价格和1元键是价格类型。在价格中,我们存储价格和价格类型,我们存储固定,可协商,随叫随到。在这里,随叫随到的帖子没有显示价格过滤器。如果用户按价格范围搜索100至500然后我需要显示在呼叫职位,但不显示。随叫随到职位价格字段为空。因此,我如何显示在电话帖子与价格范围。这里是查询。

<?php
    $args = array(
    ‘s’ => $title,
    ‘post_type’ => ‘ad_post’,
    ‘post_status’ => ‘publish’,
    ‘posts_per_page’ => 100, //New Custom Code
    ‘post__in’ => (!empty($postArr))? $postArr : [],
    ‘tax_query’ => array(
    $category,
    $ad_types,
    ),
    ‘meta_query’ => [
    ‘relation’ => ‘AND’,
    $price,
    $custom_search,
    [
    ‘relation’ => ‘OR’,
    $priceType,
    ],
    ],
    
    ‘order’ => $order,
    ‘orderby’ => $orderBy,
    ‘paged’ => $paged,
    );
    
    $price = array(
    ‘key’ => ‘price’,
    ‘value’ => array($_GET[‘min_price’], $_GET[‘max_price’]),
    ‘type’ => ‘numeric’,
    ‘compare’ => ‘BETWEEN’,
    );
    
    $priceType = array(
    ‘key’ => ‘price_type’,
    ‘value’ => array(‘Negotiable’,’Fixed’,’on_call’),
    ‘compare’ => ‘IN’
    );

我也有tax_query所以所有的组合不一起工作。所以我需要显示在电话后与价格范围过滤器。总是价格过滤器删除价格类型过滤器。在postmeta表中,哪个帖子有电话,价格=空白,价格_类型= on_call,哪个广告有价格类型=固定,价格= 100或其他值。

u4dcyp6a

u4dcyp6a1#

如果我理解正确的话,你想过滤你的产品 * 要么 * 价格 * 或 * 类型等于on_call
为此,您必须稍微更改查询,如下所示:

‘meta_query’ => [
    ‘relation’ => ‘AND’,
    $custom_search,
    [
        ‘relation’ => ‘OR’,
        $priceType,
        $price,
    ],
],

$priceType = array(
    ‘key’ => ‘price_type’,
    ‘value’ => array(‘on_call’),
    ‘compare’ => ‘IN’
);

表示“custom_search AND(priceType OR price)"。

相关问题