2017-11-10 6 views
0

関連するタクソノミーとポストタイトル(またはカスタムフィールド)によるセカンダリの順序でWPクエリを作成するにはどうすればよいですか?taxonomy term/customフィールドの値でwp_queryを並べ替える方法

私の「tax_xは」私の「tax_yは」それは順序 のために関連していないことにより、必要とされている項目を、制限し、私はsecondary- /サブ発注のためのcustom_field_2を持つループ を注文するフィールドで分類です製品CPTでポストの...

$product_args = array(
     'post_type' => 'product', 
     'posts_per_page' => '-1', 
      //'orderby'   => 'slug',   
      'orderby'   => 'meta_value', 
      'order'    => 'ASC', 
      'meta_query' => array(
       array(
        'taxonomy' => 'tax_x', 
        'meta_key'  => 'custom_field_1', 
        ), 
      ), 

      'tax_query' => array(
       array(
        'taxonomy' => 'tax_y', 
        'field'  => 'id', 
        'terms'  => $this_term_id 
        ), 

      ) 
    ); 
} 

答えて

0

あなたはmeta_query要素によって順序を使用する場合は、meta_valueをORDERBY使用しないでください、あなたの代わりにmeta_query_array_nameをORDERBY使用することができます。

tax_x meta_query配列に名前を付けて、その要素をorderby使ってみましょう。 さらに、投稿タイトルで追加注文する場合、orderby値として2つの要素の配列を使用する必要があります。次に例を示します。

$product_args = array(
     'post_type' => 'product', 
     'posts_per_page' => '-1',  
      'orderby'   => array ('tax_x_meta'=>'ASC','title'=>ASC), 
      'meta_query' => array(
       'tax_x_meta'=>array(
        'value' => 'tax_x', 
        'key'  => 'custom_field_1', 
        ), 
      ), 

      'tax_query' => array(
       array(
        'taxonomy' => 'tax_y', 
        'field'  => 'id', 
        'terms'  => $this_term_id 
        ), 

      ) 
    ); 
} 

一部「値」=> 『tax_x』、」当然の不明瞭ですが、私はmeta_query内部で何をしているかの分類法を理解していませんでした。

+0

両方のタクソノミーは同じ機能を有するが、必ずしも同時に/後回しではない。 – finest

+0

上記のコードでは、 tax_xは用語(値)を、linkeは値をポストタイプで提出します。 tax_yは出力を1つの課税対象に制限します。 私はtax_xとtax_yがそこで変更できる前に言ったようにfunction_ tax_yは注文のためであり、tax_xはループを制限します。 あなたのコードを疲れさせると、メタクエリ部分がループ内の出力を停止します:-( – finest

+0

いいえ、私のコードは説明のためのものであり、例として、完全なデータが分からないためコードを実行できませんmeta_queryはwp_postmetaテーブルのデータ用ですが、タクソノミのデータですが、それはあなたの製品の構造です。用語表に格納されます。 –

関連する問題