2011-11-22 55 views
0

我一直在问自己这个问题很长一段时间。也许有人已经做了一些挖掘(或参与WP)以了解答案。Wordpress加载缓存功能,如wp_get_nav_menu_object?

我说的是在页面加载期间,从WP变量中存储来自WP函数的对象。避免为相同的结果集查询数据库两次。

不要意味着缓存的意义在于预渲染动态页面并将它们保存为HTML格式以加快检索速度。

在页面加载过程中,很多“模板标签”(Wordpress函数)可能会在主题中多次使用。当一个主题或插件调用这样的函数时,WP是否每次运行一次数据库查询以检索必要的数据,并且每次都解析这些数据以返回所需的对象?

或者,函数在第一次运行时将结果存储在PHP变量中,并在查询数据库或分析之前检查它是否已经存在?

实例包括:

wp_get_nav_menu_object()

wp_get_nav_menu_items()

wp_list_categories()

wp_tag_cloud()

wp_list_authors()

......还有bloginfo()wp_nav_menu()等重要功能。

当然,缓存任何和所有查询(如post-related)都没有多大意义。但对于上面的例子(还有更多),我相信会。

到目前为止,当一个主题需要通过编写我自己的函数或类以及缓存在全局变量或静态变量中的同一个函数被多次调用时,我才会自己缓存这些泛型函数。我不明白为什么我应该通过一次运行完全相同的通用查询来增加服务器负载。

Wordpress中是否存在这种缓存?

回答

1

是的,用于某些查询和功能。请参阅WP Object Cache。相关功能是wp_cache_get,wp_cache_set,wp_cache_addwp_cache_delete。您可以通过WordPress代码在许多地方找到这些功能,以完成您所描述的内容。

+0

完美的答案。谢谢! – bobsoap