Je voudrais supprimer les champs d'utilisateur et j'ai utilisé ce code:
add_filter( 'user_contactmethods', 'newfields' );
function newfields( $user_contact ) {
unset($user_contact['facebook']);
unset($user_contact['Twitter']);
return $user_contact;
}
Si j'utilise ce code dans functions.php
de mon thème, cela fonctionne, mais si j'utilise ce code dans un plugin, cela ne fonctionne pas.
Pourquoi? Comment puis-je le résoudre?
Cela pourrait être le problème d'ajuster la priorité de votre rappel de filtre, car les fichiers de plugins sont exécutés avant le fichier de thème functions.php
. Cela pourrait expliquer pourquoi cela fonctionne dans votre fichier functions.php
, si la priorité est la même.
Lorsque vous ajoutez l'extrait de code à un plug-in, celui-ci peut être exécuté avant les autres plug-ins qui utilisent le même filtre.
La priorité par défaut est 10
, vous devriez donc essayer quelque chose de plus élevé dans votre code de plugin, par exemple:
add_filter( 'user_contactmethods', 'newfields', 99 );
ou même
add_filter( 'user_contactmethods', 'newfields', PHP_INT_MAX );
si vous voulez être absolument sûr que votre rappel de filtre est le dernier à être exécuté - en supposant que les autres plugins n'utilisent pas aussi PHP_INT_MAX
.
Mieux encore, il suffit de vérifier la priorité des rappels de filtre user_contactmethods
que les autres plug-ins utilisent.