Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Wordpress中,当查询中有多个自定义字段时,如何按自定义字段排序?_Wordpress_Wordpress Theming - Fatal编程技术网

在Wordpress中,当查询中有多个自定义字段时,如何按自定义字段排序?

在Wordpress中,当查询中有多个自定义字段时,如何按自定义字段排序?,wordpress,wordpress-theming,Wordpress,Wordpress Theming,我正在编辑在自定义查询中使用自定义字段的现有Wordpress主题。我需要编辑查询,以便按一个自定义字段过滤结果,并按第二个自定义字段排序 这就是我迄今为止所做的尝试: <?php $query_args = array(); $query_args['post_type'] = 'woo_estate'; $query_args['meta_query'] = array( array( 'key' => 'on_show', 'value'

我正在编辑在自定义查询中使用自定义字段的现有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
自定义字段排序


如何通过自定义价格字段将此查询下订单?

在此处的文档中挖掘了一些信息后:我能够找到实现我所需的代码

$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 )

要按自定义字段排序,您必须在数组中添加
meta\u键
,并且
orderby
对于数字应该是
meta\u值
meta\u值
,因此在本例中,它应该是
meta\u值
,因为它是数字

$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'
    )
);
// ...

,您也可以看一看。

+1,对于您自己的问题,您自己通过挖掘文档找到了这个不错的答案。