问题描述
目前我有三个在 pre_get_posts
上运行的功能。我叫他们这样:
add_action( 'pre_get_posts', 'private_groups' );
add_action( 'pre_get_posts', 'search_results' );
add_action( 'pre_get_posts', 'name_profiles' );
这使我能够保持功能整齐和独立,但是调用相同的动作三次,而不是调用组合功能一次,资源流失?
最佳解决方案
我想你的意思是
add_action( 'pre_get_posts', 'private_groups' );
add_action( 'pre_get_posts', 'search_results' );
add_action( 'pre_get_posts', 'name_profiles' );
与
add_action( 'pre_get_posts', 'combined_into_single_callback' );
您可以使用例如 memory_get_usage()
和 timer_stop()
。许多很好的插件可以帮助你。
我会说第一个,因为他们似乎是无关的回调,可能更容易维护。
我希望主要依赖于您在那里运行的回调函数:private_groups()
,search_results()
和 name_profiles()
与 combined_into_single_callback()
。
钩子设置本身不应该是资源耗尽,因为它只是全局数组中的三个新的额外元素。
当使用 pre_get_posts
时,您应该注意的是仅将目标对象为对应的 WP_Query
实例,并避免为所有实例运行昂贵的代码块。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。