最好使用两个通过addaction()连接到不同操作的专用方法,或者它可以是相同方法的两倍吗?

时间:2020-07-13 作者:Beda Schmid

这仅仅是一个关于性能和通用(WordPress)PHP开发方面什么更好的问题。

我在一个自定义PHP函数中从WordPress网站取消注册和退出fewe脚本(和样式),我add_action 就像这样add_action( \'wp_print_scripts\', \'my_custom_method\', PHP_INT_MAX );

在我的my_custom_method 我收集了一些插件选项、全局帖子和更多数据,然后运行wp_dequeue_scriptwp_deregister_script 迭代我设置要删除的每个脚本(插件选项),样式也是如此。

这适用于我到目前为止想要删除的所有脚本和样式。然而,有one 脚本已添加到get_footer (通过第三方插件),因此wp_print_scripts 此项未删除。当我将我的方法(显然)挂接到get_footer, 但在这种情况下,不会删除样式。

所以我把我的方法和wp_print_scripts get_footer, 这很有效。

我的问题是add_action() 同样的方法两次(一次wp_print_scripts 一次到get_footer), 或者,如果我减少get_footer 只是wp_deregister_script 这个one 脚本已添加到get_footer?

1 个回复
SO网友:mozboz

因此有4个因素:

性能(速度、资源使用)便利性代码可维护性学习您正在使用的API如果您不知道函数的性能,那么就不可能回答您的问题,但我想如果它不执行或导致任何数据库查询,也不执行对大量数据的操作,那么它可能很快。

看起来你所做的很方便——你把代码放在一个地方,然后从需要的几个地方调用它。

尽管它是从两个地方调用的,因为代码在一个地方,非常容易维护。如果您想在将来更改它的功能,那么您没有两个位置,并且需要确定将更改放在哪里,您只需更改这一个函数,您就知道会发生效果。

您可以用不同的方式来实现这一点,但听起来您是在说,这将需要更多的时间来学习您正在使用的界面(即WP脚本排队顺序),这可能对您没有好处。

所以,总的来说,如果它是一个快速功能,那么没有理由不这样做,而且由于可维护性,它的设计也不错。

相关推荐

Debug Performance Issues

我有一个WordPress博客,我在Dream Host上主持了几年了。最近(去年)我的网站经常宕机。通过Dream Host,我发现我正在使用我的CPU限制,他们正在杀死我的进程。这种情况过去一天发生两次,但我能把它减少到一周一次。我将我的缓存插件从W3 Total缓存交换到另一个缓存,并删除了一些插件。我有时还是会遇到问题。老实说,我是ASP。NET开发人员,所以我习惯于调试IDE和CMS应用程序中的工具。我如何才能弄清CPU问题的根源?有WordPress工具吗?此外,我的网站是为URL模式配置的h