2017-02-21 7 views
1

meta_queryを含むwp_queryを注文しようとしています...
いくつかの異なるアプローチの後で、 meta_query、およびorderby => IDがデフォルトで使用されています(私は思う)、上書きすることはできません。どのようにこれを達成するための任意のアイデア?
は、ここで私はメタ値で記事を表示するだけで使用PHPコードです:WP_Queryカスタムメタ値で注文し、変更して注文する

$paged = get_query_var('paged') ? get_query_var('paged') : (get_query_var('page') ? get_query_var('page') : 1); 
$args = array(
    'post_type' => 'post', 
    'post_status' => 'publish', 
    'paged' => $paged, 
    'meta_query' => array(
     array(
      'key' => 'subtitrare', 
      'value' => 'romana', 
      'compare' => 'LIKE' 
     ) 
    ) 
); 

$listing_query = null; 
$listing_query = new WP_Query($args); 
if ($listing_query->have_posts()) : get_template_part('loop-item'); 
endif; 
wp_reset_postdata(); 

あなたは私も結果をページ分割見ることができるように、私は同じ$argsを使用することができます。私は結果を並べ替えるためにカスタム関数を使用しようとしましたが、それは私のために働いていませんでした。

+2

何を注文したいですか? –

+0

はorderby - > succesなしで修正されました。だから私は変更日にそれをソートしたいDESC –

+0

私は少しそれを言い換えるつもりだ。私はwp_postでpost_modifiedの後に結果を再配置したいしたがって、最初にmeta_valueによってデフォルトのmeta_idを使用して配列され、結果はpost_modifiedによって並べ替えられます。 –

答えて

0
$args = array(
    'post_type' => 'post', 
    'post_status' => 'publish', 
    'paged' => $paged, 
    'orderby' => 'modified', 
    'order' => 'DESC', 
    'meta_query' => array(
     array(
      'key' => 'subtitrare', 
      'value' => 'romana', 
      'compare' => 'LIKE' 
     ) 
    ) 
); 

これはあなたが必要とするコードですが、これを試したと言いました。これは、カスタムフィールド値がLIKE 'romana'に設定されているすべての投稿を返します。このコードを使用した結果はどうなりますか?

+0

これは私が試した最初のものでした。私を信頼してください:) ...問題は、meta_queryのためにクエリがこのorderbyを無視するということです。デフォルトではmeta_queryはmeta_id(私は考える)によって配置されていますので、別の 'orderby'をquery ...これは、最初のクエリを "格納する"か何かをするなどの別のアプローチを必要とし、post_modifiedの後に再度並べ替える必要があります。明らかにあなたの提案はうまくいきませんでした。最初に試しましたが、私はもう一度やってみました。 –

関連する問題