【问题标题】:WP_Query $args and compare operatorsWP_Query $args 和比较运算符
【发布时间】:2013-09-24 14:05:29
【问题描述】:

我在生成带有运算符的 sql 查询时遇到了麻烦。实际上写了这段代码:

$args = array(
    'post_type' => 'listings',
    'posts_per_page' => 10,
    'paged' => $paged,  
    'meta_query' => array(
        //CITY
        array(
            'key' => 'city',
            'value' => $city,           
            'compare' => 'LIKE'
        ),    
        //type
        array(
            'key' => 'type',
            'value' => $type,           
            'compare' => 'LIKE'
        ),    
        //PRICE
        array(
            'key' => 'price',
            'value' => array( 100, 5000 ),          
            'compare' => 'BETWEEN'          
        ),      
    )
);

这段代码工作正常,但现在,我需要在$start 和$end 或price = -1 之间获取带有price 的帖子。换言之,未设置价格或设置为-1 的帖子必须显示在查询中。其他条件(城市、类型等)必须与AND匹配

有什么想法吗?谢谢!

【问题讨论】:

    标签: sql wordpress operators


    【解决方案1】:

    我最初的想法是在posts_where 或posts_join 上添加一个过滤器,以便将自定义SQL 条件注入到查询中。

    类似的东西:

    wp_postmeta.meta_key='price' AND 
        (wp_postmeta.meta_value='-1' OR 
        CAST(wp_postmeta.meta_value AS INT) BETWEEN $start AND $end)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      相关资源
      最近更新 更多