Supposons qu'un autre plugin ou thème utilise un hook add_action. Existe-t-il un moyen de déterminer si un crochet spécifique est utilisé par quelqu'un d'autre?
Exemple: supposons qu'un plugin ait ce code
add_action ( 'publish_post', 'myCustomFunction' );
function myCustomFunction() {
// does something
}
Mon plugin peut-il "ressembler" à l'utilisation de ce hook dans "publish_post"? Et puis-je supprimer ce crochet d'action avant qu'il ne se déclenche?
Vous pouvez utiliser has_action()
. Il retourne la priorité du hook s'il existe, sinon false
. Vérifiez donc que la priorité n’est pas égale à false
(et pas seulement false-y, ou être accroché à 0
apparaîtra faux), puis utilisez-le pour supprimer le hook.
$priority = has_action( 'publish_post', 'myCustomFunction' );
if ( $priority !== false ) {
remove_action( 'publish_post', 'myCustomFunction', $priority );
}
Il y a aussi has_filter()
, qui fait exactement la même chose (has_action()
appelle simplement has_filter()
).