Hapus bagian Opsi Pribadi dari Profil


11

Saya ingin menyembunyikan / menghapus Opsi Pribadi di halaman admin Profil Anda ( wp-admin/profile.php).

Saya menyadari bahwa ada solusi untuk ini, tetapi saya menggunakan jQuery untuk menyembunyikan bagian ini. Ini berfungsi, tetapi ketika pengguna menonaktifkan JavaScript di browser mereka, itu akan muncul lagi. Karenanya ini bukan cara yang tepat untuk menghapus Opsi Pribadi.

Apakah ada cara untuk menghapus bagian Opsi Pribadi dari sumber HTML halaman? Ini berarti tidak ada retas jQuery atau CSS, atau modifikasi file inti.


Sebagai tambahan, jika pengguna menonaktifkan JavaScript, ada banyak lagi yang tidak dapat mereka gunakan di Wordpress. Tapi tetap saja, melakukannya di sisi server jauh lebih baik bila memungkinkan :)
Tim Malone


Jawaban:


24

Ini harus melakukan trik

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

Juga, jangan lupa untuk menandai pertanyaan Anda sebelumnya yang diselesaikan :)


ini luar biasa, tetapi bagaimana cara membuatnya berfungsi untuk WP 3.4? hanya pemilih skema warna yang dihapus. mungkin karena saya tidak bisa menemukan file admin_head-profile.phpdan admin_footer-profile.phpinti. ide ide? terimakasih banyak.
Ana Ban

Apakah Anda yakin itu tidak berhasil? Saya hanya menggunakan ini pada instalasi baru dan berhasil OK. Perhatikan Anda harus mengedit kode di atas jika Anda menggunakan bahasa lain. Juga, inilah beberapa info tentang admin_head-profile.phpdan admin_footer-profile.php: codex.wordpress.org/Plugin_API/…

@CorvanNoorloos Terima kasih untuk ini, apakah ada cara untuk meninggalkan opsi untuk memungkinkan mereka memeriksa apakah mereka ingin menampilkan bilah alat atau tidak?
Greenhoe

6

Hanya mencoba mencari tahu ini dan menemukan jawaban ini. Kode di atas oleh Cor van tidak berfungsi lagi, tetapi dengan sedikit perubahan pada add_action, itu bisa.

Yang perlu Anda lakukan adalah mengubah dua baris terakhir dari:

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

untuk

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

Jadi, kode terakhir akan terlihat seperti:

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

Bagus tindak lanjutnya, perubahan ini ke kode asli bekerja dengan sempurna.
Daniel

Bisakah Anda memberi tahu saya bagaimana cara menghapus lebih banyak elemen <h3>? Apa modifikasi dari kode di atas yang saya butuhkan?
Fabian

5

Jawaban yang diterima tidak bekerja dengan 4.8

Di sinilah kode terbaru dan disederhanakan yang harus bekerja dengan versi apa pun:

        // 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 tetapi masalah yang sama dengan jawaban yang diterima, string harus dilokalisasi agar dapat bekerja dengan lagu non-inggris.
Mark Kaplun

@MarkKaplun itu benar! Saya membuat perubahan.
RafaSashi

3

Berkat komentar dari @Per, saya membuatnya berfungsi untuk 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

Pembaruan untuk 3.9, karya-karya berikut:

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

1

Inilah solusi CSS saya, diuji dalam 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

Saya hanya ingin mengklarifikasi bahwa kode tersebut tidak akan berfungsi untuk versi lokal WordPress, karena Personal Optionsstring hardcoded . Saya tidak bisa memikirkan solusi mudah di sini, tetapi saran dipersilahkan.

Saya ingin menambahkan ini sebagai komentar, tetapi saya tidak punya reputasi yang cukup untuk menambahkan komentar.

Saya juga mengambil kesempatan ini untuk menempelkan kembali seluruh kode yang diperbarui untuk WordPress versi 3.9.

Ini dia:

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

Sekali lagi, jika Anda tahu sebelumnya apa bahasa instalasi WP Anda, ubah Personal Optionsstring ke versi lokal bahasa Anda, misalnya dalam bahasa Italia Anda akan menggantinya dengan Impostazioni personali.


0

Dengan menggunakan

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

dalam fungsi cor_remove_personal_options, itu dilokalkan juga.


0

Saya telah menemukan solusi ini di: 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');

Jika Anda ingin lebih spesifik atau menghapus lebih banyak Anda harus melihat di sini: https://isabelcastillo.com/hide-personal-options-wordpress-admin-profile

Anda bisa menambahkan garis-garis itu ke dalam fungsi.


Menghapusnya dengan Javascript tidak pernah menjadi praktik yang baik ...
Marcos Buarque
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.