Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress meta_查询筛选类型numeric不起作用_Wordpress - Fatal编程技术网

Wordpress meta_查询筛选类型numeric不起作用

Wordpress meta_查询筛选类型numeric不起作用,wordpress,Wordpress,我有这样一个元查询: $meta_query_args = array( 'relation' => 'AND', array( 'key' => 'apartment-price', 'value' => array(50000, 100000), 'compare' => 'BETWEEN', 'type' => 'numeric' ), array(

我有这样一个元查询:

$meta_query_args = array(
    'relation' => 'AND',
    array(
        'key'     => 'apartment-price',
        'value'   => array(50000, 100000),
        'compare' => 'BETWEEN',
        'type' => 'numeric'
    ),
    array(
        'key'     => 'apartment-block',
        'value'   => $data['block'],
        'compare' => 'IN'
    ),
    array(
        'key'     => 'apartment-floor',
        'value'   => intval($data['floor']),
        'compare' => 'IN',
        'type' => 'numeric'
    )
);

$meta_query = new WP_Query( 
                    array( 
                        'post_type' => 'apartment',
                        'meta_query' => $meta_query_args
                         ) 
                    );
SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id )  INNER JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id )  INNER JOIN wp_postmeta AS mt2 ON ( wp_posts.ID = mt2.post_id ) WHERE 1=1  AND ( 
  ( wp_postmeta.meta_key = 'apartment-price' AND CAST(wp_postmeta.meta_value AS SIGNED) BETWEEN '50000' AND '100000' ) 
  AND 
  ( mt1.meta_key = 'apartment-block' AND mt1.meta_value IN ('B') ) 
  AND 
  ( mt2.meta_key = 'apartment-floor' AND CAST(mt2.meta_value AS SIGNED) IN ('1') )
) AND wp_posts.post_type = 'apartment' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'future' OR wp_posts.post_status = 'draft' OR wp_posts.post_status = 'pending') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10
我想过滤50000到100000之间的公寓价格,但我得到如下查询:

$meta_query_args = array(
    'relation' => 'AND',
    array(
        'key'     => 'apartment-price',
        'value'   => array(50000, 100000),
        'compare' => 'BETWEEN',
        'type' => 'numeric'
    ),
    array(
        'key'     => 'apartment-block',
        'value'   => $data['block'],
        'compare' => 'IN'
    ),
    array(
        'key'     => 'apartment-floor',
        'value'   => intval($data['floor']),
        'compare' => 'IN',
        'type' => 'numeric'
    )
);

$meta_query = new WP_Query( 
                    array( 
                        'post_type' => 'apartment',
                        'meta_query' => $meta_query_args
                         ) 
                    );
SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id )  INNER JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id )  INNER JOIN wp_postmeta AS mt2 ON ( wp_posts.ID = mt2.post_id ) WHERE 1=1  AND ( 
  ( wp_postmeta.meta_key = 'apartment-price' AND CAST(wp_postmeta.meta_value AS SIGNED) BETWEEN '50000' AND '100000' ) 
  AND 
  ( mt1.meta_key = 'apartment-block' AND mt1.meta_value IN ('B') ) 
  AND 
  ( mt2.meta_key = 'apartment-floor' AND CAST(mt2.meta_value AS SIGNED) IN ('1') )
) AND wp_posts.post_type = 'apartment' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'future' OR wp_posts.post_status = 'draft' OR wp_posts.post_status = 'pending') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10
所以它不起作用,因为数字被引用了。为什么参数“type”不起作用?救命啊!
顺便说一句,公寓楼层过滤器也不工作,原因相同。

我认为您的
类型
参数需要大写。请尝试使用
NUMERIC
@Joe NewNine不,它不起作用。问题是type参数转换等式的左侧,而不是右侧。您知道这将非常缓慢,并且会使查询变得繁重吗?如果你正在查询大量的帖子,你甚至可能有一个没有响应的页面。。。