Supprimer la section Options personnelles du profil

11

Je souhaite masquer / supprimer les options personnelles de la page d'administration Votre profil ( wp-admin/profile.php ).

Je suis conscient que des solutions existent, mais jQuery est utilisé pour masquer cette section. Cela fonctionne, mais lorsqu'un utilisateur a JavaScript désactivé dans son navigateur, il réapparaîtra. Par conséquent, ce n'est pas un moyen approprié pour supprimer les options personnelles.

Existe-t-il un moyen de supprimer la section Options personnelles de la source HTML de la page? Cela signifie pas de hacks jQuery ou CSS, ni de modification de fichiers.

    
posée dev-jim 20.04.2012 - 10:35

9 réponses

24

Cela devrait faire l'affaire.

// removes the 'profile.php' admin color scheme options
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

if ( ! function_exists( 'cor_remove_personal_options' ) ) {
  /**
   * Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
   */
  function cor_remove_personal_options( $subject ) {
    $subject = preg_replace( '#<h3>Personal Options</h3>.+?/table>#s', '', $subject, 1 );
    return $subject;
  }

  function cor_profile_subject_start() {
    ob_start( 'cor_remove_personal_options' );
  }

  function cor_profile_subject_end() {
    ob_end_flush();
  }
}
add_action( 'admin_head-profile.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-profile.php', 'cor_profile_subject_end' );

N'oubliez pas non plus de marquer vos questions précédentes comme résolues:

    
réponse donnée user5424 20.04.2012 - 18:13
5

J'essayais juste de comprendre cela et j'ai trouvé cette réponse. Le code ci-dessus de Cor van ne fonctionne plus, mais avec un léger changement de add_action, cela peut fonctionner.

Il suffit de modifier les deux dernières lignes à partir de:

add_action( 'admin_head-profile.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-profile.php', 'cor_profile_subject_end' );

à

add_action( 'admin_head-user-edit.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-user-edit.php', 'cor_profile_subject_end' );

Ainsi, le code final ressemblerait à quelque chose comme:

if ( ! function_exists( 'cor_remove_personal_options' ) ) {
  /**
   * Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
   */
  function cor_remove_personal_options( $subject ) {
    $subject = preg_replace( '#<h3>Personal Options</h3>.+?/table>#s', '', $subject, 1 );
    return $subject;
  }

  function cor_profile_subject_start() {
    ob_start( 'cor_remove_personal_options' );
  }

  function cor_profile_subject_end() {
    ob_end_flush();
  }
}
add_action( 'admin_head-user-edit.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-user-edit.php', 'cor_profile_subject_end' );
    
réponse donnée KornDev 24.05.2013 - 01:20
5

La réponse acceptée ne fonctionne pas avec la version 4.8

Voici un code à jour et simplifié qui devrait fonctionner avec n’importe quelle version:

        // removes admin color scheme options

        remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

        //Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.

        add_action( 'admin_head', function () {

            ob_start( function( $subject ) {

                $subject = preg_replace( '#<h[0-9]>'.__("Personal Options").'</h[0-9]>.+?/table>#s', '', $subject, 1 );
                return $subject;
            });
        });

        add_action( 'admin_footer', function(){

            ob_end_flush();
        });     
    
réponse donnée RafaSashi 16.06.2017 - 15:41
3

Merci au commentaire de @Per je l'ai eu pour 4.5.2

    // removes admin color scheme options
    remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

    if ( ! function_exists( 'cor_remove_personal_options' ) ) {
        /**
        * Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
        */
        function cor_remove_personal_options( $subject ) {
            $subject = preg_replace( '#<h2>Personal Options</h2>.+?/table>#s', '', $subject, 1 );
            return $subject;
        }

        function cor_profile_subject_start() {
            ob_start( 'cor_remove_personal_options' );
        }

        function cor_profile_subject_end() {
            ob_end_flush();
        }
    }
    add_action( 'admin_head', 'cor_profile_subject_start' );
    add_action( 'admin_footer', 'cor_profile_subject_end' );'
    
réponse donnée Menian Lee 07.06.2016 - 13:50
2

Mise à jour pour 3.9, les travaux suivants:

add_action( 'admin_head', 'cor_profile_subject_start' );
add_action( 'admin_footer', 'cor_profile_subject_end' );
    
réponse donnée Allen Sutton 18.04.2014 - 10:41
0

Je voulais juste préciser que le code ne fonctionnerait pas pour les versions localisées de WordPress, en raison de la chaîne codée en dur Personal Options . Je ne vois pas de solution facile ici, mais les suggestions sont les bienvenues.

J'aurais ajouté ceci en tant que commentaire, mais je n'ai pas assez de réputation pour ajouter un commentaire.

Je profite également de cette occasion pour recoller le code complet mis à jour pour WordPress version 3.9.

La voici:

// removes the 'profile.php' admin color scheme options
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

if ( ! function_exists( 'cor_remove_personal_options' ) ) {
  /**
   * Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
   */
  function cor_remove_personal_options( $subject ) {
    $subject = preg_replace( '#<h3>Personal Options</h3>.+?/table>#s', '', $subject, 1 );
    return $subject;
  }

  function cor_profile_subject_start() {
    ob_start( 'cor_remove_personal_options' );
  }

  function cor_profile_subject_end() {
    ob_end_flush();
  }
}
add_action( 'admin_head', 'cor_profile_subject_start' );
add_action( 'admin_footer', 'cor_profile_subject_end' );

Encore une fois, si vous connaissez à l'avance la langue de votre installation WP, remplacez la chaîne Personal Options par la version traduite de votre langue. Par exemple, en italien, vous la remplacerez par Impostazioni personali .

    
réponse donnée Emanuele Feliziani 09.08.2014 - 19:29
0

En utilisant

$subject = preg_replace( '#<h3>'.__("Personal Options").'</h3>.+?/table>#s', '', $subject, 1 );

dans la fonction cor_remove_personal_options, il est également localisé.

    
réponse donnée user3252207 03.09.2015 - 18:17
0

J'ai trouvé cette solution sur: enlace

function hide_personal_options(){ 
    echo "\n" . '<script type="text/javascript">jQuery(document).ready(function($) { 
    $(\'form#your-profile > h3:first\').hide(); $(\'form#your-profile > 
    table:first\').hide(); $(\'form#your-profile\').show(); });</script>' . "\n"; 
} 
add_action('admin_head','hide_personal_options');

Si vous voulez être plus précis ou en supprimer davantage, vous devriez jeter un coup d'œil ici: enlace

Vous pouvez simplement ajouter ces lignes dans la fonction.

    
réponse donnée K. Tromp 17.07.2017 - 13:56
0

Voici ma solution CSS, testée dans Wordpress 4.9.8

remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
add_action( 'admin_head', function(){
    ob_start(); ?>
    <style>
        #your-profile > h2,
        .user-rich-editing-wrap,
        .user-syntax-highlighting-wrap,
        .user-comment-shortcuts-wrap,
        .user-admin-bar-front-wrap {
            display: none;
        }
    </style>
    <?php ob_end_flush();
});
    
réponse donnée Grant 22.08.2018 - 07:27

Lire d'autres questions sur les étiquettes