假设其他插件或主题使用add\\u操作挂钩。有没有办法确定某个特定的钩子是否被其他人使用?
示例:假设插件具有以下代码
add_action ( \'publish_post\', \'myCustomFunction\' );
function myCustomFunction() {
// does something
}
我的插件能否“查找”到“publish\\u post”中使用该挂钩?我能在它启动之前移除那个特定的动作钩吗?
最合适的回答,由SO网友:Jacob Peattie 整理而成
您可以使用has_action()
. 如果钩子存在,则返回钩子的优先级,否则返回false
. 因此,请检查优先级是否不等于false
(而不仅仅是假y或被0
将显示为false),然后使用该选项移除挂钩。
$priority = has_action( \'publish_post\', \'myCustomFunction\' );
if ( $priority !== false ) {
remove_action( \'publish_post\', \'myCustomFunction\', $priority );
}
还有
has_filter()
, 做了完全相同的事情(
has_action()
只是打电话而已
has_filter()
).