Remover seção de opções pessoais do perfil

11

Desejo ocultar / remover as Opções pessoais na página de administração do Seu perfil ( wp-admin/profile.php ).

Estou ciente de que existem soluções para isso, mas eu uso o jQuery para ocultar esta seção. Isso funciona, mas quando um usuário tiver o JavaScript desativado no navegador, ele será exibido novamente. Portanto, não é uma maneira correta de remover as Opções Pessoais.

Existe uma maneira de remover a seção Opções Pessoais do código-fonte HTML da página? Isso significa que não há hacks de jQuery ou CSS ou modificações no arquivo principal.

    
por dev-jim 20.04.2012 / 10:35

9 respostas

24

Isso deve fazer o truque

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

Além disso, não se esqueça de marcar suas perguntas anteriores como resolvidas:)

    
por user5424 20.04.2012 / 18:13
5

Estava apenas tentando descobrir isso e me deparei com essa resposta. O código acima de Cor van não funciona mais, mas com uma pequena alteração do add_action, ele pode.

Tudo o que você precisa fazer é alterar as duas últimas linhas de:

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

para

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

Então, o código final seria algo como:

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' );
    
por KornDev 24.05.2013 / 01:20
5

A resposta aceita não está funcionando com 4,8

Aí vem um código atualizado e simplificado que deve funcionar com qualquer versão:

        // 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();
        });     
    
por RafaSashi 16.06.2017 / 15:41
3

Graças ao comentário do @Per, consegui trabalhar para 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' );'
    
por Menian Lee 07.06.2016 / 13:50
2

Atualização para 3.9, os seguintes trabalhos:

add_action( 'admin_head', 'cor_profile_subject_start' );
add_action( 'admin_footer', 'cor_profile_subject_end' );
    
por Allen Sutton 18.04.2014 / 10:41
0

Eu só queria esclarecer que o código não funcionará para versões localizadas do WordPress, por causa da string Personal Options codificada. Não consigo pensar em nenhuma solução fácil aqui, mas sugestões são bem-vindas.

Eu teria adicionado isso como um comentário, mas não tenho reputação suficiente para adicionar um comentário.

Eu também aproveito esta oportunidade para voltar a colar o código inteiro atualizado para o WordPress versão 3.9.

Aqui está:

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

Novamente, se você souber com antecedência qual será o idioma da sua instalação do WP, altere a string Personal Options para a versão localizada do seu idioma, por exemplo, em italiano, substitua-o por Impostazioni personali .

    
por Emanuele Feliziani 09.08.2014 / 19:29
0

Usando

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

na função cor_remove_personal_options, também está localizada.

    
por user3252207 03.09.2015 / 18:17
0

Encontrei esta solução em: 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');

Se você quer ser mais específico ou remover mais, você deve dar uma olhada aqui: enlace

Você pode simplesmente adicionar essas linhas à função.

    
por K. Tromp 17.07.2017 / 13:56
0

Aqui está minha solução CSS, testada no 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();
});
    
por Grant 22.08.2018 / 07:27

Tags