2017-01-27 7 views
1

私はwp_queryを使用しています。メタキーで結果をソートすると、ソートしている列に何も入力されていない商品が除外されます。私は一番上に評価されていないものを含め、すべての製品が必要です。wp_queryとメタデータの並べ替えではエントリのない商品が除外されます

else if($field == "rating") { 
    $myArgs = array(
     'posts_per_page' => -1, 
     'orderby'   => 'meta_value_num', 
     'order'   => 'DESC', 
     'include'   => '', 
     'meta_key'   => 'rating', 
     'post_type'  => 'job_listing', 
     'post_status'  => 'publish', 
     'job_listing_region' => 'London', 
     'compare' => '' 
    ); 
} 

UPDATE:私は、私は必要なソート結果を得るwsn't判明し、次のコードを変更するが、結果はまだ未定格の製品の排他的です。

$myArgs = array(
     'orderby'   => 'meta_value_num', 
     'order'   => 'DESC', 
     'post_type'  => 'job_listing', 
     'post_status'  => 'publish', 
     'job_listing_region' => "'" . $city . "'", 
     'meta_query' => array(
      array(
       'key'  => 'rating', 
       'compare' => '<' 
      ), 
     ) 
    ); 
+0

を試してみてください。 –

+0

評価はユーザーによって生成されていますが、空のスペースがあると仮定しています。デフォルトではデータベースにはNULLがあります。おそらくNULLです。 –

+0

そこにはnullがあるかもしれません。デフォルトでは、すべてのメタ値を空の値で埋めることはできません。 –

答えて

0

可能な解決策は、すべての製品でデフォルト(空の)メタ値を保存することですthis-

$myArgs = array(
    'post_type'  => 'job_listing', 
    'posts_per_page' => -1, 
    'meta_key'   => 'rating', 
    'orderby'   => 'meta_value', 
    'order'   => 'DESC',   
    'post_status'  => 'publish', 
    'job_listing_region' => 'London' 
); 
+0

これは機能しませんでした。 –

関連する問題