Rimuovere la sezione Opzioni Personali dal Profilo
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.

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 :)

è 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.

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

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

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

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

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

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

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
.

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.

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