我有这个问题:
$args = array(
\'posts_per_page\' => -1,
\'post_type\' => \'page\',
\'post_status\' => \'publish\',
\'meta_query\' => array(
\'relation\' => \'AND\',
\'tipo_pagina_clause\' => array(
\'key\' => \'tipo_pagina\',
\'value\' => \'prodotto\',
\'compare\' => \'=\'
),
\'tipo_prodotto_clause\' => array(
\'key\' => \'tipo_prodotto\',
\'compare\' => \'EXISTS\',
),
array(
\'key\' => \'brand\',
\'value\' => get_the_id(),
\'compare\' => \'LIKE\',
),
),
\'orderby\' => array(
\'tipo_prodotto_clause\' => \'ASC\',
\'post_title\' => \'asc\',
),
);
// query
$prodotti_brand = new WP_Query( $args );
一切正常,但我想要的是“post\\u title”=>“rand”,但“rand”似乎不起作用。我做错了什么?
最合适的回答,由SO网友:MikeNGarrett 整理而成
简单的回答是“你不能那样做。”Take a look at the Codex.
将orderby用作数组时,值可以是ASC
或DESC
. 如果要设置rand
您只能作为一把钥匙这样做。也就是说,按随机顺序将覆盖任何其他顺序,因此您不会从按tipo_prodotto_clause
第一
\'order\' => \'ASC\',
\'orderby\' => \'rand\',
还要确保注意orderby rand所需的上下文:
随机顺序。您还可以使用“RAND(x)”,其中“x”是整数种子值。Note an "order" parameter needs to be present for "orderby" rand to work.
一条建议:不鼓励随意订购。该查询在mysql中执行得不好,并且可能会中断站点上对每个请求的缓存,或者如果缓存不够灵活,则可能无法正常工作。事实上WP Engine has banned its usage by default. 使用时要小心。通常最好找到一个替代解决方案。