Удалить раздел «Личные настройки» из профиля


11

Я хочу скрыть / удалить личные параметры на странице администрирования вашего профиля ( wp-admin/profile.php).

Я знаю, что решения для этого существуют, но я использую jQuery, чтобы скрыть этот раздел. Это работает, но когда пользователь отключил JavaScript в своем браузере, он появится снова. Поэтому это неправильный способ удаления личных параметров.

Есть ли способ удалить раздел «Личные параметры» из источника HTML страницы? Это означает отсутствие jQuery или CSS-хаков, или модификацию файла ядра.


Просто добавим, что если у пользователя отключен JavaScript, есть намного больше, что он не сможет использовать в Wordpress. Но все же, делать это на стороне сервера гораздо лучше, когда это возможно :)
Тим Мэлоун

Будьте осторожны - смотрите ответ: wordpress.stackexchange.com/a/162277/33667
T.Todua

Ответы:


24

Это должно сделать свое дело

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

Также не забудьте пометить ваши предыдущие вопросы как решенные :)


это круто, но как мне заставить его работать на WP 3.4? удаляется только средство выбора цветовой схемы. вероятно, потому что я не могу найти файлы admin_head-profile.phpи admin_footer-profile.phpв ядре. идеи? Спасибо большое.
Ана Пан,

Вы уверены, что это не работает? Я только использовал это на новой установке, и это работало хорошо. Обратите внимание, что вы должны отредактировать приведенный выше код, если вы используете другой язык. Кроме того , здесь некоторая информация о admin_head-profile.phpи admin_footer-profile.php: codex.wordpress.org/Plugin_API/...

@CorvanNoorloos Спасибо за это, есть ли возможность оставить возможность разрешить им проверять, хотят ли они показывать панель инструментов или нет?
Greenhoe

6

Просто пытался понять это и наткнулся на этот ответ. Вышеприведенный код от Cor van больше не работает, но с небольшим изменением add_action он может.

Все, что вам нужно сделать, это изменить последние две строки с:

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

Итак, окончательный код будет выглядеть примерно так:

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

Хорошее продолжение, это изменение к оригинальному коду работало отлично.
Даниэль

Не могли бы вы сказать мне, как я могу удалить больше элементов <h3>? Какие модификации вышеуказанного кода мне нужны?
Фабиан

5

Принятый ответ не работает с 4.8

Вот обновленный и упрощенный код, который должен работать с любой версией:

        // 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, но та же проблема, что и с принятым ответом, строка должна быть локализована для работы с неанглийскими языками.
Марк Каплун

@MarkKaplun это верно! Я сделал изменения.
RafaSashi

3

Благодаря комментарию @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

Обновление для 3.9, следующие работы:

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

1

Вот мое решение CSS, протестированное в 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

Я просто хотел уточнить, что код не будет работать для локализованных версий WordPress из-за жестко закодированной Personal Optionsстроки. Я не могу придумать легкого решения здесь, но предложения приветствуются.

Я бы добавил это как комментарий, но у меня недостаточно репутации, чтобы добавить комментарий.

Я также пользуюсь этой возможностью, чтобы заново вставить весь код, обновленный для WordPress версии 3.9.

Вот:

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

Опять же, если вы заранее знаете, каким будет язык вашей установки WP, измените Personal Optionsстроку на локализованную версию вашего языка, например, на итальянском языке вы замените ее на Impostazioni personali.


0

Используя

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

в функции cor_remove_personal_options она также локализована.


0

Я нашел это решение по адресу : https://premium.wpmudev.org/blog/how-to-simplify-wordpress-profiles-by-removing-personal-options/?ptm=c&utm_expid=3606929-108.O6f5ypXuTg-XPCV9sY1yrw 0,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');

Если вы хотите быть более конкретным или удалить больше, вы должны посмотреть здесь: https://isabelcastillo.com/hide-personal-options-wordpress-admin-profile

Вы можете просто добавить эти строки в функцию.


Удаление его с помощью Javascript никогда не было хорошей практикой ...
Маркос Бурке
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.