WordPress : remove_action ne fonctionne pas, même après avoir changé de priorité

Publié par Jean-Michel le

Donc, l’une des fonctions de mon thème est:

public function job_manager_job_filters_distance() {
   //Show some HTML
}

Et quelque part ailleurs dans le document se trouve:

add_action( 'job_manager_job_filters_search_jobs_end', array( $this, 'job_manager_job_filters_distance' ), 0 );

Je veux désactiver cette fonction.

Alors naturellement, je suis allé dans functions.php de mon thème enfant et j’ai ajouté remove_action :

remove_action( 'job_manager_job_filters_search_jobs_end', 'job_manager_job_filters_distance' );

Cela n’a pas fonctionné. Ensuite, j’ai essayé différentes priorités pour la suppression :

remove_action( 'job_manager_job_filters_search_jobs_end', 'job_manager_job_filters_distance', 20 );

Toujours pas aller. Ensuite, j’ai essayé de l’envelopper dans une fonction qui se déclenche après le chargement du thème :

function remove_listify_junk() {
    remove_action( 'job_manager_job_filters_search_jobs_end', 'job_manager_job_filters_distance' );
}
add_action( 'after_setup_theme', 'remove_listify_junk', 999 );

Et la fonction fait toujours son truc =[…

Qu’est-ce que j’oublie ici?

Solution n°1 trouvée

Vous essayez de décrocher une fonction PHP par opposition à une méthode d’instance (de classe) – voir ici :

array( $this, 'job_manager_job_filters_distance' )

… c’est le rappel réel enregistré sur le hook. Pour décrocher, vous avez besoin de la même chose (une référence à l’instance).

Si vous essayez de décrocher de l’ intérieur de la classe, c’est aussi simple que d’utiliser ce qui précède. Sinon, vous avez besoin d’une référence à l’instance – recherchez quelque chose comme ce qui suit dans votre code :

$my_class = new Name_Of_Class;

… alors vous exécuteriez :

remove_action( 'job_manager_job_filters_search_jobs_end', array( $my_class, 'job_manager_job_filters_distance' ) , 0 );

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *