Get posts using WP_Query

时间:2017-03-27 作者:name name2

我想使用WP\\u查询函数显示帖子。我还想添加随机顺序。

所以我试着

<?php
  $temp = $wp_query; 
  $wp_query= null;
  $args = array(
        \'orderby\' => \'rand\',
  ); 
  $wp_query = new WP_Query($args);
  $wp_query->query(\'showposts=8\' . \'&paged=\'.$paged );
  while ($wp_query->have_posts()) : $wp_query->the_post();
?>
我可以看到8篇帖子,但“orderby=”“>“rand”似乎不起作用。

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

我已经有一段时间没有与WordPress合作了,但在我看来:

您正在执行两次查询

当你通过时,首先$args 在实例化期间提交给构造函数。

当你打电话的时候query().

With this, you\'re essentially overwriting the first query (the one that contains the orderby=rand).

这个documentation of WP_Query 提到get_posts() 如果在构造函数中使用参数,则调用,并且不应调用两次:

&get_posts() – 从数据库中获取并返回请求的帖子。还填充$posts和$post\\u count。注:This is called during construction if WP_Query is constructed with arguments. 它不是幂等且should not be called more than once on the same query object. 这样做可能会导致查询中断。

以及query() 方法的文档声明它调用get_posts(), 因此它被称为两次:

&query( $query )Call parse\\u query()和get_posts(). 返回get\\u posts()的结果。

解决方法:要么把所有东西都放进去$args, 或添加orderby 参数太大$wp_query->query(..) 呼叫

SO网友:Svartbaard

请查看WP\\U查询类引用,并从那里开始工作。尝试这些基本示例,反复使用这些参数,直到您了解WP\\U查询和循环的工作方式。

https://codex.wordpress.org/Class_Reference/WP_Query

查询不起作用的原因是没有正确传递参数(对所有参数都使用args数组)和使用不推荐使用的参数。

相关推荐

Organize functions.php

组织职能的最佳方式是什么。php的性能?我有几个add\\u操作调用、几个add\\u主题支持、几个add\\u过滤器和4个附加函数。对于面包屑、样式表、注册菜单和小部件。我们是否需要遵守订单?例如,首先是所有add\\u过滤器函数,然后是add theme\\u support等。不确定添加代码是否相关,因为这是一个一般性问题。如果需要,我很乐意更新这篇文章。