6

「商品」タイプの投稿を「価格」カスタム フィールドで並べて表示します。

$query = new WP_Query( 
                      array ( 'post_type' => 'product', 
                              'orderby' => 'meta_value', 
                              'meta_key' => 'price' ) 
                     );

「サイズ」でも注文したい場合は、どのコードを使用すればよいですか?

カスタムフィールドで複数の並べ替えが必要な別の例:

「イベント」タイプの投稿を「Start_Hour」、「Start_Minute」の順で表示します。

4

4 に答える 4

7

Bainternetのおかげで私は解決策を見つけました:

function orderbyreplace($orderby) {
    return str_replace('menu_order', 'mt1.meta_value, mt2.meta_value', $orderby);
}

と...

$args = array(
  'post_type'=>'Events',
  'orderby' => 'menu_order',
  'order' => 'ASC',
  'meta_query' => array(
        array(
            'key' => 'Start_Hour',
            'value' => '',
            'compare' => 'LIKE'
        ),
        array(
            'key' => 'Start_Minute',
            'value' => '',
            'compare' => 'LIKE'
        )
    )
);

add_filter('posts_orderby','orderbyreplace');
$loop = new WP_Query( $args );
remove_filter('posts_orderby','orderbyreplace');
于 2012-10-07T20:36:14.917 に答える
-1

カスタム フィールドの 1 つが meta_key で、もう 1 つがテーブルの通常の列である場合は、複数のカスタム フィールドを並べ替えるためのフィルターやフックは必要ありません。これらのパラメーター/引数をクエリで使用する必要はありません。

'meta_key' => 'KEY_NAME',
'orderby' => 'meta_value_num SECOND_COLUMN_NAME',
'order' => 'ASC' or 'order' => 'DESC'

ここでmeta_value_numSECOND_COLUMN_NAME問題の順序は、順序に基づいて異なる-2 の結果が表示される場合があります。

于 2015-02-06T13:16:54.827 に答える