Rimuovi la sezione Opzioni personali dal profilo


11

Voglio nascondere / rimuovere le Opzioni personali nella pagina di amministrazione del tuo profilo ( wp-admin/profile.php).

Sono consapevole che esistono soluzioni per questo, ma io uso jQuery per nascondere questa sezione. Funziona, ma quando un utente ha JavaScript disabilitato nel suo browser, verrà nuovamente visualizzato. Pertanto non è un modo corretto per rimuovere le Opzioni personali.

Esiste un modo per rimuovere la sezione Opzioni personali dall'origine HTML della pagina? Ciò significa che non sono presenti hack jQuery o CSS o modifiche ai file core.


Solo per aggiungere, se un utente ha JavaScript disabilitato, c'è molto di più che non sarà in grado di utilizzare in Wordpress. Tuttavia, farlo sul lato server è molto meglio quando possibile :)
Tim Malone,

Fai

Risposte:


24

Questo dovrebbe fare il trucco

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

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


è fantastico, ma come posso farlo funzionare per WP 3.4? viene rimosso solo il selettore di combinazioni colori. probabilmente perché non riesco a trovare i file admin_head-profile.phpe admin_footer-profile.phpnel core. idee? grazie mille
Ana Ban,

Sei sicuro che non funzioni? Ho appena usato questo 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.phpe admin_footer-profile.php: codex.wordpress.org/Plugin_API/…

@CorvanNoorloos Grazie per questo, c'è un modo per lasciare l'opzione per consentire loro di verificare se vogliono mostrare la barra degli strumenti o no?
Greenhoe,

6

Stavo solo cercando di capirlo e ho trovato questa risposta. Il codice sopra riportato di Cor van non funziona più, ma con una leggera modifica dell'add_action, può farlo.

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

per

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 sarebbe simile a:

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

Bello follow-up, questa modifica al codice originale ha funzionato perfettamente.
Daniel,

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

5

La risposta accettata non funziona con 4.8

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

        // 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();
        });     

1
+1 ma stesso problema con la risposta accettata, la stringa deve essere localizzata per funzionare con lingue non inglesi.
Mark Kaplun,

@MarkKaplun è giusto! Ho fatto il cambiamento.
RafaSashi,

3

Grazie al commento di @Per l'ho fatto funzionare per 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' );`

2

Aggiornamento per 3.9, i seguenti lavori:

add_action( 'admin_head', 'cor_profile_subject_start' );
add_action( 'admin_footer', 'cor_profile_subject_end' );

1

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();
});

0

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

Avrei aggiunto questo come commento, ma non ho abbastanza reputazione per aggiungere un commento.

Colgo anche l'occasione per incollare nuovamente l'intero codice aggiornato per WordPress versione 3.9.

Ecco qui:

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

Ancora una volta, se sai in anticipo quale sarà la lingua della tua installazione di WP, cambia la Personal Optionsstringa nella versione localizzata della tua lingua, ad esempio in italiano con cui la sostituirai Impostazioni personali.


0

Usando

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

nella funzione cor_remove_personal_options, è anche localizzato.


0

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 rimuoverne di più, dai un'occhiata qui: https://isabelcastillo.com/hide-personal-options-wordpress-admin-profile

Puoi semplicemente aggiungere quelle righe nella funzione.


Rimuoverlo con Javascript non è mai una buona pratica ...
Marcos Buarque,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.