3

カスタムクエリでカスタムフィールドを使用する既存のWordpressテーマを編集しています。結果が1つのカスタムフィールドでフィルタリングされ、2番目のカスタムフィールドで並べ替えられるように、クエリを編集する必要があります。

これは私がこれまでに試みたことです:

<?php
$query_args = array();
$query_args['post_type'] = 'woo_estate';
$query_args['meta_query'] = array(
    array(
        'key' => 'on_show',
        'value' => 'true'
    ),
    array(
        'key' => 'price',
        'type' => 'numeric',
    )
);
$query_args['orderby'] = 'price';
$query_args['order'] = 'ASC';

$query_args['posts_per_page'] = $woo_options['woo_more_entries'];
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$query_args['paged'] = $paged;

?>
    <?php query_posts(  $query_args ); ?>

price問題は、結果がカスタムフィールドではなく、デフォルト(日付)で並べ替えられ続けることです。

このクエリをカスタム価格フィールドで注文するにはどうすればよいですか?

4

2 に答える 2

2

meta_keyカスタムフィールドで並べ替えるには、配列に追加するorderby必要があり、数値の場合はまたはである必要があります。したがって、この場合meta_valueは数値であるためです。meta_value_nummeta_value_num

$query_args['meta_key'] = 'price';
$query_args['orderby'] = 'meta_value_num';
$query_args['order'] = 'ASC';
$query_args['meta_query'] = array(
    array(
        'key' => 'on_show',
        'value' => 'true'
    )
);
// ...

ここに別の答えがあります、あなたもこれを見るかもしれません。

于 2012-12-28T22:55:18.210 に答える
2

http://codex.wordpress.org/Class_Reference/WP_Queryのドキュメントを少し掘り下げた後、必要なことを実現するコードを思いつくことができました。

$query_args = array();
$query_args['post_type'] = 'woo_estate';
$query_args['meta_query'] = array(
    array(
        'key' => 'on_show',
        'value' => 'true'
    )
);

$query_args['meta_key'] = 'price';
$query_args['orderby'] = 'meta_value_num';
$query_args['order'] = 'DESC';

$query_args['posts_per_page'] = $woo_options['woo_more_entries'];
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$query_args['paged'] = $paged;

query_posts(    $query_args )
于 2012-12-28T22:53:11.343 に答える