Usuń sekcję Opcje osobiste z profilu

11

Chcę ukryć / usunąć Opcje osobiste na stronie administratora Twojego profilu ( wp-admin/profile.php).

Wiem, że istnieją rozwiązania tego problemu, ale używam jQuery, aby ukryć tę sekcję. To działa, ale gdy użytkownik wyłączy JavaScript w przeglądarce, pojawi się ponownie. Dlatego nie jest właściwym sposobem na usunięcie opcji osobistych.

Czy istnieje sposób na usunięcie sekcji Opcje osobiste ze źródła HTML strony? Oznacza to brak hacków jQuery lub CSS lub modyfikację rdzenia pliku.

dev-jim
źródło
Wystarczy dodać, że jeśli użytkownik ma wyłączoną obsługę JavaScript, jest o wiele więcej rzeczy, których nie będą mogli używać w Wordpress. Ale nadal robi to po stronie serwera, jeśli jest to możliwe, znacznie lepiej :)
Tim Malone
Bądź ostrożny - patrz odpowiedź: wordpress.stackexchange.com/a/162277/33667
T.Todua
1
Możliwy duplikat Jak usunąć te pola z sekcji „Profil”?
T.Todua,

Odpowiedzi:

24

To powinno załatwić sprawę

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

Nie zapomnij też zaznaczyć swoich poprzednich pytań jako rozwiązanych :)


źródło
to jest niesamowite, ale jak sprawić, by działało w WP 3.4? usuwany jest tylko próbnik schematów kolorów. prawdopodobnie nie mogę znaleźć plików admin_head-profile.phpi admin_footer-profile.phprdzenia. pomysły? dzięki wielkie.
Ana Ban
Jesteś pewien, że to nie działa? Właśnie użyłem tego przy nowej instalacji i działało OK. Pamiętaj, że musisz edytować powyższy kod, jeśli używasz innego języka. Oto kilka informacji na temat admin_head-profile.phpi admin_footer-profile.php: codex.wordpress.org/Plugin_API/…
@CorvanNoorloos Dzięki za to, czy jest jakiś sposób na pozostawienie opcji pozwalającej im sprawdzić, czy chcą pokazać pasek narzędzi, czy nie?
Greenhoe
6

Próbowałem to rozgryźć i natknąłem się na tę odpowiedź. Powyższy kod autorstwa Cor van już nie działa, ale z niewielką zmianą dodatkowej aktywności może.

Wszystko, co musisz zrobić, to zmienić dwie ostatnie linie z:

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

do

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

Tak więc końcowy kod wyglądałby mniej więcej tak:

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' );
KornDev
źródło
Ładne uzupełnienia, ta zmiana oryginalnego kodu działała idealnie.
Daniel
Czy możesz mi powiedzieć, jak mogę usunąć więcej elementów <h3>? Jakich modyfikacji powyższego kodu potrzebuję?
Fabian
5

Zaakceptowana odpowiedź nie działa z wersją 4.8

Oto aktualny i uproszczony kod, który powinien działać z każdą wersją:

        // 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();
        });     
RafaSashi
źródło
1
+1, ale taki sam problem jak w przypadku zaakceptowanej odpowiedzi, ciąg musi być zlokalizowany, aby działał z językami innymi niż angielski.
Mark Kaplun
@MarkKaplun to prawda! Dokonałem zmiany.
RafaSashi
3

Dzięki komentarzowi @Per udało mi się go uruchomić w wersji 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' );`
Menian Lee
źródło
2

Aktualizacja do wersji 3.9, działa:

add_action( 'admin_head', 'cor_profile_subject_start' );
add_action( 'admin_footer', 'cor_profile_subject_end' );
Allen Sutton
źródło
1

Oto moje rozwiązanie CSS przetestowane w 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();
});
Dotacja
źródło
0

Chciałem tylko wyjaśnić, że kod nie będzie działał dla zlokalizowanych wersji WordPress z powodu zakodowanego Personal Optionsciągu. Nie mogę wymyślić tutaj żadnego łatwego rozwiązania, ale sugestie są mile widziane.

Dodałbym to jako komentarz, ale nie mam wystarczającej reputacji, aby dodać komentarz.

Korzystam również z okazji, aby ponownie wkleić cały kod zaktualizowany do WordPressa w wersji 3.9.

Oto on:

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

Ponownie, jeśli wiesz z góry, jaki będzie język instalacji WP, zmień Personal Optionsciąg na zlokalizowaną wersję swojego języka, na przykład w języku włoskim, na który go zastąpisz Impostazioni personali.

Emanuele Feliziani
źródło
0

Używając

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

w funkcji cor_remove_personal_options jest również lokalizowana.

użytkownik3252207
źródło
0

Znalazłem to rozwiązanie na: 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');

Jeśli chcesz być bardziej szczegółowy lub usunąć więcej, powinieneś zajrzeć tutaj: https://isabelcastillo.com/hide-personal-options-wordpress-admin-profile

Możesz po prostu dodać te linie do funkcji.

K. Tromp
źródło
Usunięcie go za pomocą Javascript nigdy nie jest dobrą praktyką ...
Marcos Buarque