J'utilise un thème qui est mis à jour assez souvent. Pour cela, il a ajouté un fichier custom.php pour inclure les modifications. Maintenant, dans ce thème, sous le fichier functions.php, le développeur a inclus sa propre section méta qui est ajoutée à l'aide de la fonction suivante:
add_action('wp_head', 'theme_metas');
Je veux laisser mon plugin SEO gérer cela, alors j'ai essayé de l'ajouter dans le fichier custom.php:
remove_action('wp_head', 'theme_metas', 15);
J'ai même essayé de modifier la priorité plus haut et plus bas que 10 (ce qui est la valeur par défaut) mais les métas sont toujours visibles. Quelqu'un peut-il nous éclairer s'il vous plaît?
Votre remove_action
doit avoir une priorité correspondant à la priorité utilisée dans add_action
.
Important: pour supprimer un hook, les arguments $ function_to_remove et $ priority doivent correspondre lors de l'ajout du hook. Cela vaut pour les filtres et les actions. Aucun avertissement ne sera donné en cas d'échec de la suppression.
Dans votre cas, il semble que remove_action('wp_head', 'theme_metas');
devrait fonctionner, mais vous pouvez avoir des problèmes à cause du mode et du moment de chargement de votre fichier custom.php
.
Pour supprimer une action, la priorité doit être la même que celle utilisée lors de l'ajout de l'action. dans votre cas, il devrait être
remove_action('wp_head', 'theme_metas');
ou
remove_action('wp_head', 'theme_metas',10);
Le détail à retenir est que la suppression d’une action ne peut être effectuée qu’après que l’action a déjà été ajoutée . Les actions sont simplement stockées dans un tableau et tout ce que remove_action
fait consiste à annuler l'entrée. Si remove_action
est appelé avant add_action
, le résultat final sera que la suppression ne fera rien.
Par conséquent, vous ne devez appeler remove_action
que lorsque vous êtes sûr que l’association add_action a été appelée. Pour la plupart des actions, il est conseillé d’accroche avec la priorité la plus élevée sur l’accroché en question.
Dans ton cas
add_action('wp_head','wpse86994_remove_action',1); // prioroty of 1, but can be anything higher (lower number) then the priority of the action
function wpse86994_remove_action() {
remove_action('wp_head', 'theme_metas');
}