2017-08-14 4 views
0

私は中古車のサイトを持っています。特定の車両を見るときは、同様の車両のセクションがあります。現在、類似の車両は同じボディスタイル($ vehicletype)の車両に基づいています。2つのメタクエリを含むWordPressカスタムクエリ

同じボディスタイルの車両を同様の価格で表示するように変更したいと思います。これまでのところ、私はこのコードの働きを持っている:

$vehicletype = get_post_meta($post->ID, 'Vehicle Type', true); 
$id = get_the_ID(); 
$baseprice = get_post_meta($post->ID, 'Retail Price', true); 
$minprice = $baseprice - 10000; 
$maxprice = $baseprice + 10000; 

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$args = array(
    'post_type' => array('vehicle'), 
    'post__not_in' => array($id), 
    'post_status' => 'publish', 
    'order' => 'DESC', 
    'orderby' => 'date', 
    'posts_per_page' => 5, 
    'paged' => $paged, 
    'meta_key' => 'Vehicle Type', 
    'meta_value' => $vehicletype, 
    'meta_key' => 'Retail Price', 
    'meta_value' => $baseprice, 
); 

これは明らかに、同じボディスタイルとまったく同じ価格の両方で車を表示します。私はこれを変えて、まったく同じ価格の車両だけでなく、同じ価格帯($ minpriceと$ maxpriceの間)の車両を表示するようにしたいと思います。

は、私はそれがこのようになります疑い:私はこの作業を取得するには、いくつかの異なる方法を試してみました

'meta_query' => array(
    array(
    'key'  => 'Retail Price', 
    'value' => array($minprice, $maxprice), 
    'type' => 'numeric', 
    'compare' => 'BETWEEN', 
), 
), 

、それらのすべては、「このページは機能していない」エラーページを引き起こします。

ご協力いただければ幸いです。事前
ウィレム

答えて

1

には何かということです提供してくださいこれのようなものを試してみてくださいは動作していません:

'meta_query' => array(
    'relation' => 'AND', 
    array 
    (
     'key'  => 'Vehicle Type', 
     'value' => $vehicletype, 
     'compare' => '=' 
    ), 
    array 
    (
     'key'  => 'Retail Price', 
     'value' => $minprice, 
     'type' => 'numeric', 
     'compare' => '>=', 
    ), 
    array 
    (
     'key'  => 'Retail Price', 
     'value' => $maxprice, 
     'type' => 'numeric', 
     'compare' => '<=', 
    ) 
) 
1

おかげで、この

$vehicletype = get_post_meta($post->ID, 'Vehicle Type', true); 
$id = get_the_ID(); 
$baseprice = get_post_meta($post->ID, 'Retail Price', true); 
$minprice = $baseprice - 10000; 
$maxprice = $baseprice + 10000; 
$query = array(); 
$queryPrice = array(); 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
if("" != $vehicletype) 
    $query[] = ['key'=>'Vehicle Type','value' => $vehicletype, 'compare' => '=']; 

if("" != $baseprice){ 
    $queryPrice[] = ['key'=>'Retail Price','value' => $minprice, 'compare' => '>']; 
    $queryPrice[] = ['key'=>'Retail Price','value' => $maxprice, 'compare' => '<']; 
} 

$args = array(
    'post_type' => 'vehicle', 
    'post__not_in' => array($id), 
     'post_status' => 'publish', 
     'order' => 'DESC', 
     'orderby' => 'date', 
     'posts_per_page' => 5, 
     'paged' => $paged, 
    'meta_query' => array('relation' => 'OR ',$query) 
    'meta_query' => array('relation' => 'AND ',$queryPrice) 
); 
$wp_query = new WP_Query($args); 

はまた、クエリが

'meta_key' => 'Vehicle Type', 
'meta_key' => 'Retail Price', 

を持ってしてみてくださいあなたは鍵がデータベース

関連する問題