Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.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
Php Wordpress Orderby习惯于订购帖子_Php_Wordpress - Fatal编程技术网

Php Wordpress Orderby习惯于订购帖子

Php Wordpress Orderby习惯于订购帖子,php,wordpress,Php,Wordpress,我想按折扣金额订购我的产品。 我已将折扣保存为一个名为“折扣”的帖子元中的数字,但当我使用以下代码时: $productArgs = array( 'posts_per_page' => 20, 'post_type' => 'product', 'meta_key' => 'discount', 'orderby' => 'meta_value_decimal', 'or

我想按折扣金额订购我的产品。 我已将折扣保存为一个名为“折扣”的帖子元中的数字,但当我使用以下代码时:

$productArgs = array(
    'posts_per_page'    => 20,
    'post_type'         => 'product',
    'meta_key'          => 'discount',
    'orderby'           => 'meta_value_decimal',
    'order'             => 'DESC',
    'meta_type'         => 'DECIMAL',
);

$test = $productArgs;

$products = get_posts($productArgs);
产品显示为:0%、50%、55%、28%。 即使我将
顺序
更改为ASC,输出也不会发生任何变化

我还尝试了
'orderby'=>'meta\u value
,但没有
'meta\u type'

有人知道这是什么原因吗

编辑:


我发现了我的错误。。我的帖子被添加到一个数组中,ID作为数组键,按帖子ID排序。

如果折扣字段都是数字,请尝试
'orderby'=>'meta\u value\u num'
并删除
meta\u type
参数

您可以为orderby参数定义元键,如

query_posts(
    array(  'post_type' => 'product',
            'order'     => 'ASC',
            'meta_key' => 'discount',
            'orderby'   => 'meta_value', //or 'meta_value_num'
            'meta_query' => array(
                                array('key' => 'order_in_archive',
                                      'value' => 'some_value'
                                )
                            )
    )
);

希望这能起作用。

一定不要
'orderby'=>“折扣”
?和
'meta_value'=>'decimal'
?meta_查询呢@NewUser-我只需要按meta_值排序-它是0还是100并不重要,所以我不知道应该如何使用meta_查询来做到这一点。@JustOnUnderMillions-我不知道你的评论是什么意思。。