Видаліть розділ Особисті параметри з профілю


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 Спасибі за це, чи можна залишити опцію, щоб вони могли перевірити, чи хочуть вони показати панель інструментів чи ні?
Грінхой

6

Просто намагався це зрозуміти і натрапив на цю відповідь. Вищеописаний код Кор Ван більше не працює, але при незначній зміні добавки він може.

Все, що вам потрібно зробити, - це змінити два останні рядки з:

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 ось так! Я змінив.
Рафасаші

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