Je dois supprimer certains champs de profil de la page «Profil» en fonction des rôles d'utilisateur. Pour retirer le sélecteur de couleur que j'ai utilisé remove_action("admin_color_scheme_picker", "admin_color_scheme_picker")
. Je souhaite supprimer ces champs:
- Surnom
- Afficher le nom publiquement en tant que
- Champs AIM, Yahoo, Google Talk et À propos de vous
- La section "Afficher la barre d'administration" avec les 2 cases à cocher
J'ai parcouru le fichier 'user-edit.php' pour voir s'il y a des actions / filtres qui me permettent de le faire, mais il semble que non. Quelqu'un peut-il me dire comment faire cela? Toute aide serait appréciée. Merci
EDIT: Merci @helenhousandi pour la réponse. Je l'avais déjà fait de cette façon.
<?php
add_action('admin_footer-profile.php', 'remove_profile_fields');
function remove_profile_fields()
{
if(current_user_can('custom_role'))
{ ?>
<script type="text/javascript">
jQuery("h3:contains('Personal Options')").next('.form-table').remove();
jQuery("h3:contains('Personal Options')").remove();
jQuery("h3:contains('About Yourself')").next('.form-table').remove();
jQuery("h3:contains('About Yourself')").remove();
</script>
<?php }
}
?>
Je sais que c'est un peu plus long, mais ça a marché! Je pense que j'irai avec la réponse de @ helenhousandi.
functions.php
ou un fichier de plugin. Tant que les crochets sont droits, cela fonctionnera à partir de l'un ou l'autre des endroits.Réponses:
Pour le filtre des méthodes de contact
user_contactmethods
::la source
Bien que le
user_contactmethods
filtre soit l'un des rares pour l'écran du profil utilisateur, puisque les autres champs ne sont pas requis dans WordPress, vous pouvez utiliser jQuery.hide()
et.remove()
vous débarrasser efficacement de ceux dont vous ne voulez pas sans complications en termes de sauvegarde des informations . Bien sûr, une personne sans JS sur les verrait toujours, mais c'est une petite minorité et je suppose que les informations qui y changent n'affecteront en fait rien.Un exemple de suppression de l'ensemble des options personnelles (afficher la barre d'administration et le jeu de couleurs). Je sais que ce n'est pas exactement ce que vous cherchez, je voulais juste vous donner un exemple rapide que j'ai sous la main:
En outre, une note sur l'option Afficher la barre d'administration: dans 3.3, la barre d'administration devient l'en-tête et ne peut donc pas être activée ou désactivée, donc cela ne vaut pas la peine de s'inquiéter.
J'ai mis à jour l'exemple de code pour être plus précis et complet. Il y avait des restes là-dedans.
la source
profile.php
. J'ai également dû le faire pour un rôle personnalisé spécifique défini dans mon système. Mise à jour de ma question avec la réponse.$("#nickname,#display_name").parent().parent().remove();
Comme il ne semble pas y avoir de bon crochet php pour cela, j'ai fini par cacher les champs avec CSS puis les supprimer avec JS.
la source
Depuis le forum de support wordpress, vous pouvez effectuer la suppression à l'aide de PHP. Cela supprime la section À propos de vous:
Le code remplace l'en-tête «About Yourself» par «Password», puis supprime tout ce qui se trouve entre cela et la table suivante qu'il trouve (qui est la table des mots de passe).
De plus, le plugin WP Hide Dashboard fait un remplacement jQuery similaire si vous souhaitez l'étendre.
la source
admin_head-profile.php
et à laadmin_footer-profile.php
placeFAITES ATTENTION!!
1) La suppression d'un champ peut ne pas être bonne , comme lors de la mise à jour, si vous n'envoyez pas les champs essentiels au hook de mise à jour WORDPRESS, cela peut définir des valeurs vides pour ces champs! (par exemple, lors de la soumission du formulaire, il devrait exister
<input name="username".../>
).Je pense qu'il vaut mieux CACHER visuellement aux utilisateurs uniquement, avec jquery
.hide();
et non avec le.remove();
code EXAMPLE pour masquer les champs " DISPLAY NAME " et " NICKNAME ":
2) Pour masquer la barre d'administration, il existe une option spéciale dans le menu wordpress (dans Paramètres) . pour le code personnalisé, comme ie
la source
Utilisation
et ajouter
avant JavaScript.
la source
Il n'y a pas de filtre pour les désactiver. Regardez la source (
/wp-admin/user-edit.php
) lorsque vous devez faire des choses comme ça. Vous pouvez les masquer avec JS mais ils peuvent toujours être rendus visibles et les valeurs sont mises à jour sur POST.La seule option viable consiste à pirater le noyau vous-même. Assurez-vous simplement de gérer la mise à jour et de ne pas tenir compte de ces champs sur POST.
la source