在循环的POST对象中包含POST缩略图URL以减少查询次数

时间:2019-05-15 作者:TheDraom

我现在正在开发高性能的Wordpress网站,它需要我分析大量的查询、缓存选项等。我发现如果您使用get_the_post_thumbnail() 即使在循环中,WordPress也会对每个帖子的缩略图url进行查询。

所以,如果您的页面设置为显示25篇带有缩略图的帖子,它会进行25次额外的查询来检索图像URL。

不使用get_the_post_thumbnail() 我正在将查询数从49减少到4。一个很大的数字。然而,这个主题确实需要缩略图。

您知道在默认情况下,是否有任何方法可以在post对象中包含post缩略图URL?

1 个回复
SO网友:Trisha

我相信您可以使用setup\\u postdata()获取该数据,它允许您访问与帖子相关的所有数据,并将其与标准模板标记(在您的示例中是\\u post\\u缩略图)一起使用。

这里有一个很棒的教程:https://wpshout.com/setup_postdata-template-tags-need-custom-wp_post-arrays-crave/

重要的是要注意,您首先必须设置全局$post,并且必须确保在查询结束时使用wp\\u reset\\u postdata进行重置。

我希望这对你有用!

相关推荐

The Loop not looping?

在进行了大量的故障排除和搜索之后,我想我终于明白了如何进行循环。但我似乎无法让它真正循环!我创建了一个子主题,并添加了functions.php 文件中包含以下代码:<?php function my_theme_enqueue_styles() { $parent_style = \'grow-thinkup-style-minimal\'; // This is \'twentyfifteen-style\' for the Twenty Fifteen the