J'aimerais supprimer l'action profile_personal_options
(plus précisément la case à cocher palette de couleurs et éditeur visuel) qui apparaît dans wp-admin/user-edit.php
. Je crois que c'est aussi simple que de l'exécuter à travers remove_action()
, mais je ne suis pas sûr de ce que serait le second paramètre. Où serait le meilleur endroit pour regarder?
remove_action('profile_personal_options');
J'utilisais auparavant:
function of_remove_profile_fields() {
if (current_user_can('manage_options') == false) {
?>
<style type="text/css">
form#your-profile p+h3,
form#your-profile p+h3+table { display:none!important;visibility:hidden!important; }
</style>
<?php }
}
add_action( 'admin_print_styles-profile.php', 'of_remove_profile_fields' );
add_action( 'admin_print_styles-user-edit.php', 'of_remove_profile_fields' );
mais préférerait le faire de la bonne façon. Merci!
Ack, cela ressemble en fait à ce qu'il peut être codé en dur dans user-edit.php
. Dois-je simplement aller avec la méthode CSS? Cette zone est-elle vraiment requise ou WP? Pourquoi ne se sont-ils pas connectés à leur propre do_action('profile_personal_options', $profileuser);
?
Parfois, vous avez besoin d’un peu de créativité lors de la personnalisation de la zone d’administration de WordPress. Il est souvent possible de le faire sans CSS, mais ce n'est pas toujours simple: comprendre ce qui se passe dans les fichiers source et explorer les nombreuses fonctions appelées dans les ifs et les elses est indispensable.
Voici quelque chose de légèrement hacky que je suis venu avec, qui devrait faire l'affaire:
add_action('user_edit_form_tag', 'remove_unwanted_profile_options');
function remove_unwanted_profile_options() {
# Disable visual editor checkbox
global $wp_rich_edit_exists;
$wp_rich_edit_exists = false;
# Disable choice of admin color scheme from profile.php
remove_action('admin_color_scheme_picker', 'admin_color_scheme_picker');
}
Le second bit est assez simple: il suffit de supprimer l'action utilisée par WP pour générer le sélecteur de schéma admin. L’essentiel du premier bit est le suivant: WP utilise la fonction rich_edit_exists()
pour voir si TinyMCE existe (c’est-à-dire que les fichiers de script n’ont pas été supprimés par l’administrateur), mais il va ignorer si la variable globale $wp_rich_edit_exists
a été utilisée. ensemble; donc nous venons de le définir sur "false" avant que WP ait la chance d'analyser nos fichiers. Assez simple, vraiment. De plus, lier tout à l'action 'user_edit_form_tag
' signifie que ce remplacement ne se produit que lors de l'affichage du fichier user-edit.php (qui, par défaut, n'utilise pas TinyMCE de toute façon).