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 =[…

Lire également:  Wordpress : Vue de conception interrompue sur les pages

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).

Lire également:  Wordpress : Bouton Réinitialiser/Actualiser le formulaire de recherche dans le thème WordPress

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 *