你问:
query\\u posts真的比一些辅助查询慢吗。。。
事实是如果你打电话query_posts()
从一个主题开始it already is a secondary query. WordPress已经查询过数据库一次,以获取某个页面,然后它会访问您的query_posts()
函数并再次查询数据库,创建第二次查询并覆盖原始请求/数据。
从速度的角度来看,你不会注意到任何差异。这个query_posts()
函数使用WP_Query()
覆盖某些全局变量需要几微秒的时间。最大的开销将来自您必须规范化数据,并通过分页弥补任何利基问题。
简单地说,这一切都是低效的<点击>所以,虽然可能没有一个“大红色按钮”说“不要按这里!”这几乎意味着它不应该被按下它不是又大又红但是The Codex specifically states:
Note: 此功能不适用于插件或主题。
如果您希望提高效率并需要覆盖主查询-请使用pre_get_posts
它将在从保存整个数据库调用的数据库中调用它之前修改查询参数(因为我们不需要二次查询)。