使用WP_QUERY或QUERY_POSTS()或GET_POSTS()来优化站点?

时间:2013-07-08 作者:NETCreator Hosting - WebDesign

我已经阅读了其他答案,但我不知道哪一个更快(对于运行缓慢的服务器来说是最好和最简单的)?

我有一个每天点击量超过100万次的网站,服务器速度慢,数据库连接有限,所以我想优化我的网站。

您建议我使用什么:WP\\u Query或Query\\u posts()或get\\u posts()?

如果我想在不同的位置以不同的样式显示文章,我可以在我显示的每一篇文章上重复函数[WP\\u Query or Query\\u posts()或get\\u posts()],还是最好使用一次,如果$I==1,2,3用于不同的样式?

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

This answer 解释差异。他们都使用WP_Query, 所有参数都相等,速度没有差别,只是一个问题,根据您的特殊需要,哪个更容易(提示:永远不会query_posts, 基本上不应使用)。

您应该尽可能少地查询数据库,因此,如果您可以通过一个查询获取所有帖子,然后通过php进行一些操作以获得所需的输出,与创建多个查询相比,这绝对是您应该做的。请注意WP_Query 对象包含一些有助于输出的变量,如$query_object->post_count$query_object->current_post.

如果服务器负载是一个问题,您还应该使用一个缓存插件,如W3TC。

SO网友:RebelPhoenix

真的没有必要使用query_posts() 不管在什么情况下,永远都是这样。

你为什么会问?

易于理解的因为它实例化了一个新的WP\\u查询对象并将其分配给全局变量wp_query. 这也解释了为什么使用这个函数可以与其他任何东西一起使用,以及为什么在使用它之后必须重置东西。

这是实际的query_posts() 作用

function query_posts($query) {
   $GLOBALS[\'wp_query\'] = new WP_Query();
   return $GLOBALS[\'wp_query\']->query($query);
}
解决方案=>只是真正擅长使用WP\\u查询对象。熟能生巧。

如果你真的想掌握这件事,去wp_includes/query.php 在WordPress内核中创建一个文件,然后开始阅读它,直到您理解它的逻辑为止。这可能需要一点时间,但一旦你“得到”了它。那你就永远拥有它了。

结束

相关推荐

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

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