WP_QUERY-带有随机字段的多个orderby不起作用

时间:2019-03-18 作者:globdug

我有这个问题:

$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”似乎不起作用。我做错了什么?

1 个回复
最合适的回答,由SO网友:MikeNGarrett 整理而成

简单的回答是“你不能那样做。”Take a look at the Codex.

将orderby用作数组时,值可以是ASCDESC. 如果要设置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. 使用时要小心。通常最好找到一个替代解决方案。

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post