首先,你需要把钩子放在那里。弃用只是向开发人员发出信号,他们不应该使用它,并且它将在将来被删除。所以你现在还在坚持。
因此,真正的弃用是一个通信问题,而不是真正的代码问题。WordPress在这种情况下提供的一个有用的功能是do_action_deprecated()
. 这与do_action()
, 除非开发人员WP_DEBUG
启用后,他们将看到一条警告,告诉他们挂钩已被弃用。因此,在代码中要做的事情是替换do_action()
具有do_action_deprecated()
(或apply_filters()
具有apply_filters_deprecated()
如果是过滤器)。
除此之外,您应该更新插件的开发人员文档,让开发人员知道挂钩已经被弃用,并给他们一个合理的删除时间。您还应该在包含否决的版本的更改日志中记录否决。
当或者如果是移除挂钩的时候,只需完全移除该行,并在文档和更改日志中通知开发人员该移除。
这就是说,如果唯一改变的是钩子的名称,那么您可以重命名钩子,然后自己钩住钩子并启动旧钩子:
function wpse_342000_old_hook( $arg1, $arg2 ) {
do_action( \'old_hook_name\', $arg1, $arg2 );
}
add_action( \'new_hook_name\', \'wpse_342000_old_hook\', 0, 2 );
但如果您不想保留这些代码,那么您仍然应该反对原始操作:
function wpse_342000_old_hook( $arg1, $arg2 ) {
do_action_deprecated( \'old_hook_name\', [ $arg1, $arg2 ], \'1.2.3\', \'new_hook_name\' );
}
add_action( \'new_hook_name\', \'wpse_342000_old_hook\', 0, 2 );
这样,您就可以删除对
old_hook_name
并将此代码移动到专用
deprecated.php
挡道的文件。只需更换
1.2.3
不推荐使用挂钩的插件的版本号。