3

我正在编辑在自定义查询中使用自定义字段的现有 Wordpress 主题。我需要编辑查询,以便结果由一个自定义字段过滤,并按第二个自定义字段排序。

这是我到目前为止所尝试的:

<?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

在此处的文档中挖掘了一下之后: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 回答
2

要按自定义字段排序,您必须meta_key在数组中添加并且orderby应该是meta_valueormeta_value_num用于数字,所以在这种情况下它应该是meta_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 回答