Rimuovere la sezione Opzioni Personali dal Profilo

20 apr 2012, 11:35:42
Visualizzazioni: 20.7K
Voti: 15

Voglio nascondere/rimuovere le Opzioni Personali nella pagina amministrativa Il tuo profilo (wp-admin/profile.php).

So che esistono soluzioni per questo, ma utilizzano jQuery per nascondere questa sezione. Questo funziona, ma quando un utente ha JavaScript disabilitato nel proprio browser, la sezione riapparirà. Quindi non è un modo appropriato per rimuovere le Opzioni Personali.

Esiste un modo per rimuovere la sezione Opzioni Personali direttamente dal codice HTML della pagina? Questo significa niente hack con jQuery o CSS, o modifiche ai file core.

3
Commenti

Per aggiungere, se un utente ha JavaScript disabilitato, ci sono molte altre funzionalità che non potrà utilizzare in WordPress. Tuttavia, farlo lato server è comunque molto meglio quando possibile :)

Tim Malone Tim Malone
9 mag 2016 06:55:11

Attenzione - vedi risposta: https://wordpress.stackexchange.com/a/162277/33667

T.Todua T.Todua
4 dic 2018 13:20:13

Possibile duplicato di Come rimuovere questi campi dalla sezione 'Profilo'?

T.Todua T.Todua
4 dic 2018 13:20:42
Tutte le risposte alla domanda 10
4
25

Questo dovrebbe fare al caso tuo

// rimuove le opzioni dello schema colori in `profile.php`
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

if ( ! function_exists( 'cor_remove_personal_options' ) ) {
  /**
   * Rimuove le opzioni rimanenti 'Editor Visuale', 'Scorciatoie da tastiera' e 'Barra degli strumenti'.
   */
  function cor_remove_personal_options( $subject ) {
    $subject = preg_replace( '#<h3>Opzioni Personali</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' );

Inoltre, non dimenticare di segnare le tue domande precedenti come risolte :)

20 apr 2012 19:13:09
Commenti

è fantastico, ma come posso farlo funzionare per WP 3.4? viene rimosso solo il selettore dello schema di colore. probabilmente perché non riesco a trovare i file admin_head-profile.php e admin_footer-profile.php nel core. idee? grazie mille.

Ana Ban Ana Ban
26 giu 2012 14:20:59

Sei sicuro che non funzioni? L'ho appena usato su una nuova installazione e ha funzionato bene. Nota che devi modificare il codice sopra se stai usando un'altra lingua. Inoltre, ecco alcune informazioni su admin_head-profile.php e admin_footer-profile.php: http://codex.wordpress.org/Plugin_API/Action_Reference#Administrative_Actions

User User
26 giu 2012 21:46:05

@CorvanNoorloos Grazie per questo, c'è un modo per lasciare l'opzione che permetta loro di scegliere se mostrare o meno la toolbar?

Greenhoe Greenhoe
17 mag 2015 04:46:23

la mia versione attuale 6.0.2 utilizza h2 non h3, potrebbe essere necessario aggiornare preg_replace per quello

Kender Kender
22 set 2022 18:53:01
2
11

La risposta accettata non funziona con la versione 4.8

Ecco un codice aggiornato e semplificato che dovrebbe funzionare con qualsiasi versione:

        // rimuove le opzioni dello schema colori admin
        remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

        // Rimuove le opzioni rimanenti 'Editor Visivo', 'Scorciatoie da tastiera' e 'Barra degli strumenti'
        add_action( 'admin_head', function () {
            ob_start( function( $subject ) {
                $subject = preg_replace( '#<h[0-9]>'.__("Opzioni Personali").'</h[0-9]>.+?/table>#s', '', $subject, 1 );
                return $subject;
            });
        });

        add_action( 'admin_footer', function(){
            ob_end_flush();
        });     
16 giu 2017 16:41:57
Commenti

+1 ma lo stesso problema della risposta accettata, la stringa deve essere localizzata per funzionare con lingue diverse dall'inglese.

Mark Kaplun Mark Kaplun
16 giu 2017 17:36:00

@MarkKaplun hai ragione! Ho apportato la modifica.

RafaSashi RafaSashi
16 giu 2017 18:50:41
2

Stavo cercando di capire come risolvere questo problema e mi sono imbattuto in questa risposta. Il codice sopra di Cor van non funziona più, ma con una piccola modifica all'add_action, può funzionare.

Tutto quello che devi fare è cambiare le ultime due righe da:

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

a

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

Quindi, il codice finale sarà qualcosa tipo:

if ( ! function_exists( 'cor_remove_personal_options' ) ) {
  /**
   * Rimuove le opzioni residue 'Editor Visuale', 'Scorciatoie da tastiera' e 'Barra degli strumenti'.
   */
  function cor_remove_personal_options( $subject ) {
    $subject = preg_replace( '#<h3>Opzioni Personali</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' );
24 mag 2013 02:20:11
Commenti

Buon seguito, questa modifica al codice originale ha funzionato perfettamente.

Daniel Daniel
13 feb 2014 04:31:38

Potresti dirmi come posso rimuovere più elementi <h3>? Di quali modifiche al codice sopra ho bisogno?

Fabian Fabian
27 gen 2016 20:35:33
0

Grazie al commento di @Per ho fatto funzionare il codice per la versione 4.5.2

    // rimuove le opzioni dello schema colori per l'amministratore
    remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

    if ( ! function_exists( 'cor_remove_personal_options' ) ) {
        /**
        * Rimuove le opzioni rimanenti 'Editor Visivo', 'Scorciatoie da tastiera' e 'Barra degli strumenti'.
        */
        function cor_remove_personal_options( $subject ) {
            $subject = preg_replace( '#<h2>Opzioni Personali</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' );`
7 giu 2016 14:50:45
0

Aggiornamento per la versione 3.9, il seguente codice funziona:

add_action( 'admin_head', 'cor_profile_subject_start' );
add_action( 'admin_footer', 'cor_profile_subject_end' );
18 apr 2014 11:41:15
0

Ecco la mia soluzione CSS, testata in 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();
});
22 ago 2018 08:27:12
0

Volevo solo chiarire che il codice non funzionerà per le versioni localizzate di WordPress, a causa della stringa hardcoded Personal Options. Non riesco a pensare a una soluzione semplice qui, ma i suggerimenti sono benvenuti.

Avrei voluto aggiungere questo come commento, ma non ho abbastanza reputazione per farlo.

Approfitto anche per ripostare l'intero codice aggiornato per la versione 3.9 di WordPress.

Eccolo qui:

// rimuove le opzioni dello schema di colore in `profile.php`
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

if ( ! function_exists( 'cor_remove_personal_options' ) ) {
  /**
   * Rimuove le opzioni rimanenti 'Editor Visuale', 'Scorciatoie da tastiera' e 'Barra degli strumenti'.
   */
  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' );

Ancora una volta, se sai in anticipo quale sarà la lingua della tua installazione WP, cambia la stringa Personal Options con la versione localizzata nella tua lingua, ad esempio in italiano dovrai sostituirla con Impostazioni personali.

9 ago 2014 20:29:08
0

Utilizzando

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

nella funzione cor_remove_personal_options, è anche localizzato.

3 set 2015 19:17:41
1

Ho trovato questa soluzione su: https://premium.wpmudev.org/blog/how-to-simplify-wordpress-profiles-by-removing-personal-options/?ptm=c&utm_expid=3606929-108.O6f5ypXuTg-XPCV9sY1yrw.2

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');

Se vuoi essere più specifico o rimuovere più elementi, dovresti dare un'occhiata qui: https://isabelcastillo.com/hide-personal-options-wordpress-admin-profile

Puoi semplicemente aggiungere queste righe nella funzione.

17 lug 2017 14:56:11
Commenti

Rimuoverlo con Javascript non è mai una buona pratica...

Marcos Buarque Marcos Buarque
16 lug 2018 06:44:06
0

Rimuovo solo il titolo e uso CSS per nascondere la prima tabella...

Per me, nel 2023, questo funziona:

 // rimuove le opzioni dello schema colore admin
    remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

    if ( ! function_exists( 'cor_remove_personal_options' ) ) {
        /**
        * Rimuove le opzioni rimanenti 'Editor Visivo', 'Scorciatoie da Tastiera' e 'Barra degli Strumenti'.
        */
        function cor_remove_personal_options( $subject ) {
           $subject = preg_replace( '#<h[0-9]>'.__("Opzioni Personali").'</h[0-9]>#s', '<style>#your-profile>.form-table {display:none} #your-profile>.form-table ~ .form-table {display:block}</style>', $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' );

2 feb 2023 15:31:54