繁体   English   中英

WordPress ACF 在两个数字之间搜索

[英]WordPress ACF Search Between two numbers

我需要帮助,我需要在两个数字范围之间进行搜索,例如我有 21000-23000、16000-22300、30000-40000,我想找到 22300,所以结果将是:21000-23000、16000-22300 我知道我需要使用 BETWEEN 类型,但由于某种原因,它仅在最小数字正确时才显示结果我有两个代码 1。

// Filter by price renge      
   if((isset($_REQUEST['min_price']) && $_REQUEST['min_price']!='') && (isset($_REQUEST['max_price']) && $_REQUEST['max_price']!='')){
      
        $filtermeta[] = array(
                'key' => 'minimum_price',
                'value' => array(trim($_REQUEST['min_price']), trim($_REQUEST['max_price'])),
                'compare' => 'BETWEEN',
                'type' => 'numeric'
            );   
        $filtermeta[] = array(
                'key' => 'maximum_price',
                'value' => array(trim($_REQUEST['min_price']), trim($_REQUEST['max_price'])),
                'compare' => 'BETWEEN',
                'type' => 'numeric'
            );   
     
    }
    
    if( !empty($filtermeta) && count($filtermeta)>1 ){
        $arg['meta_query'] = $filtermeta;   
    }

使用此代码搜索根本不起作用,不知道为什么,另一个有效但不正确的是这个 2。

if(isset($_REQUEST['min_price']) && $_REQUEST['min_price']!=''){
      
        $filtermeta[] = array(
                'key' => 'minimum_price',
                'value' => array(trim($_REQUEST['min_price']), 1000000),
                'compare' => 'BETWEEN',
                'type' => 'numeric'
            );      
    }
    if( !empty($filtermeta) && count($filtermeta)>1 ){
        $arg['meta_query'] = $filtermeta;   
    }

输入搜索字段:

<div class="form-group"> 
                                      <input type="number" min=0 max="9999999999" name="min_price" value="1"  oninput="validity.valid||(value='0');" id="min_price" class="price-range-field" />
                                    </div>

你能帮我么? 我对 PHP 很陌生,不明白这里要改变什么

实际上,我尝试设置 max 而不是 min 并且它有效

所以我做了这个:

if(isset($_REQUEST['max_price']) && $_REQUEST['max_price']!=''){
      
        $filtermeta[] = array(
                'key' => 'maximum_price',
                'value' => array(trim($_REQUEST['max_price']), 1000000),
                'compare' => 'BETWEEN',
                'type' => 'numeric'
            );      
    }
    if( !empty($filtermeta) && count($filtermeta)>1 ){
        $arg['meta_query'] = $filtermeta;   
    }

并改变了输入

<div class="form-group"> 
<input type="number" min=0 max="9999999999" name="max_price" value="100"  oninput="validity.valid||(value='1000');" id="max_price" class="price-range-field" />
</div>

但是确定这是否是一个好的代码,很高兴听到想法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM