[WordPress] どのようにワードプレスの 2 メタ値によって注文か?

スポンサーリンク

Question

一般 WP_Query に関連している私の質問は、Woocommerce を使用しています。ベストセラー製品のカスタム WP_Query ループを作成しています、低域と高低に高いからの価格で結果を並べ替えることができるようにするユーザーをできるようにしたいです。問題は Woocommerce で _price と total_sales は meta フィールドとワードプレス ループに orderby 1 meta フィールドだけことができます私は私の知る限り。これを回避する方法はありますか?

私の 私の試みのいくつかを含む完全なコードはここで、最も関連性の高いコード セグメントよう次のように:

$queryArgs = array(
            'post_type' => 'product',
            'posts_per_page' => -1,
            'post_status' => 'publish',
            'meta_query' => array(
                array(
                    'key'           => '_visibility',
                    'value'         => array('catalog', 'visible'),
                    'compare'       => 'IN'
                )
            ),
            'meta_key' => '_price',
            'orderby' => array('meta_value_num' => $sortBy['terms'])
        );

実際のコードはこれよりも複雑ためフィルター処理および並べ替えのオプション、範囲に組み込まれて、これはそれの要点とベストセラーは私を与える唯一のものに 2 つの meta_keys のための問題します。カスタム メタデータ フィールドに これを読んだ が、それは適用されません。

私が試した:

'meta_key' => '_price total_sales'

'meta_key => array('_price', 'total_sales')
'orderby' => array('meta_value_num' => $sortBy['terms'], 'meta_value_num' => 'DESC')

何も動作するようです。様々 な WP_Query フィルター上にフックをも試みたが、問題はこのクエリは何か私はできません ‘ハック’ ので、動的に生成されたループまたはハード コードの一部です

答え

メタ クエリを配列で使用:

'meta_query' => array (
            array (
                'key' => '_visibility',
                'value'  => array('catalog', 'visible'),
                'compare' => 'IN'
             ),
            array (
                'key' => '_price',
                'value' => "VALUE WHAT YOU WANT, NOT ASC/DESC",
            )
        ),

http://stackoverflow.com/questions/27041117/how-do-you-order-by-2-meta-values-in-wordpress

スポンサーリンク

Leave a Reply