在计算中,cache 用于存储要生成的复杂对象的状态。然后,我们将缓存的版本用于将来的请求。
查看内部register_post_type 函数,我看到它做了很多事情:
// ...
$post_type_object = new WP_Post_Type( $post_type, $args );
$post_type_object->add_supports();
$post_type_object->add_rewrite_rules();
$post_type_object->register_meta_boxes();
$post_type_object->add_hooks();
$post_type_object->register_taxonomies();
// ...
自
register_post_type 被钩住了
init, 它可以根据每个请求运行。如果CPT使用metabox
add_meta_boxes 跑步,等等。根据CPT的复杂性,这可能会变得非常混乱。
我认为这是缓存的一个很好的候选者。它可以在每个请求上运行,而且生成起来很复杂。
尽管如此,is it possible to cache the creation of the Custom Post Type WordPress中的对象?
最好是:
无需使用缓存插件或第三方软件
不仅缓存帖子,还缓存与之相关的元数据库等,以在基准测试等方面获得最佳性能。
SO网友:Krzysiek Dróżdż
一开始你就完全正确——当你处理难以获得的结果时,缓存总是一个好主意。但是
这里不是这样的。注册帖子类型和元框一点也不复杂——只需很少的PHP操作。它们不会花费太多时间(或计算能力)。
那么什么是复杂的呢?所有需要很长时间、需要许多DB查询或大量计算能力/资源的操作。
假设您要计算站点上的字数。所以你必须循环浏览所有帖子并计算字数。这是缓存的最佳情况—它很复杂,因为它需要很多时间—所以您只需执行一次,然后将结果存储在缓存中(可能是暂时的),以供以后使用。