WP在帖子页面上得到所有的POST_META吗?

时间:2016-11-08 作者:T.Todua

如果有人在前端打开任何帖子,我打多少次电话重要吗get_post_meta 作用我认为如果我不调用该函数2-3次,而不是在一个帖子页面上调用20次,那么它可以提高性能。

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

一次呼叫get_post_meta() 获取该帖子的所有met键和值。然后,所有这些值都存储在缓存中。下一个调用将只从缓存中提取数据。因此,您可以安全地多次调用该函数。

详细信息:

  1. get_post_meta() 呼叫get_metadata(\'post\', $post_id, $key, $single);
  2. get_metadata() 检查缓存并调用update_meta_cache() 如果找不到现有缓存
  3. update_meta_cache() 获取具有以下内容的所有条目:

    "SELECT $column, meta_key, meta_value 
     FROM $table 
     WHERE $column IN ($id_list) 
     ORDER BY $id_column ASC"
    
用户元值也是如此。

SO网友:prosti

。。。我认为如果我不调用该函数2-3次,而不是在一个帖子页面上调用20次,那么它可以提高性能

再加上@toscho的出色回答,我将根据我最新的digging.

如果不设置,WordPress查询将预取所有帖子的帖子元数据the query 返回。

这意味着在你打电话之前get_post_meta(); 元数据已经在WordPress缓存中。

Nacin,解释this 您可以参考下面的幻灯片34presentation.

enter image description here

从这幅图中,您可以了解到WordPress通常会预取元数据和术语的信息。

结论与@toscho的结论相同。你可以打电话get_post_meta(); 只要你需要。

要获取缓存外观的基本详细信息,您还可以检查this post.

相关推荐

如何修改WP_INCLUDE/BLOCKS/LATEST_posts.php

我是WordPress开发的初学者,希望得到一些帮助。我在一个简单的WordPress网站上工作。基本上,用户希望在主页上显示最新的帖子。我使用了最新帖子块,并将其设置为显示整个帖子内容,现在用户不希望帖子标题链接到单个帖子页面(因为帖子的内容显示在主页上)。如何安全地修改模板文件,使其像h2标记一样使用,而不是在主题中使用的href标记。我知道您可以创建子主题并修改wp_content 文件,但我不确定如何处理中的文件wp_include. 我读到一些关于修改functions.php 但我不确定,如果