我正在覆盖默认的WordPress库,如下所示:
add_filter( \'post_gallery\', \'my_gallery_shortcode\'), 12, 2 );
function my_gallery_shortcode($output, $attr) {
// some modifications to output here
return $output;
}
对$output的修改具有平均复杂性,不能说它们占用了太多或太少的处理时间。
我的问题是,我应该通过瞬态缓存$输出吗?如果是,获取set\\U瞬态密钥的最佳方法是什么?
最合适的回答,由SO网友:webaware 整理而成
如果您认为自己的短代码会影响性能(衡量一下,您就会知道!),然后,您可能需要考虑在瞬态中缓存其输出。获取唯一键的一个好方法是考虑什么可以区分对快捷码函数的调用:
其名称传递给站点URL的属性(在多个站点URL有效的情况下,例如移动域名)您还需要保持密钥长度短——under 45 characters. 我发现最好的方法是对这些项的串联进行MD5哈希,这会提供一个很好的短键,它不太可能与另一个键冲突。
$key = md5(__FUNCTION__ . serialize($attrs) . site_url());
需要考虑的另一件事是为您的过渡期设置一个到期日。如果没有,瞬态将与所有其他自动加载选项一起自动加载(瞬态存储在选项表中)。这将增加每个页面的内存使用,可能会影响站点的性能(哦,熨烫)。如果您正在瞬态中存储大量数据,而不是每个页面/帖子都需要这些数据,请不要自动加载!(即设置任何到期日)
当然,您必须考虑使用caching plugin, 这将缓存比函数生成的内容多得多的内容。权衡你的选择。