Saya harus menghapus beberapa bidang profil dari halaman 'Profil' sesuai dengan peran pengguna. Untuk menghapus color picker yang saya gunakan remove_action("admin_color_scheme_picker", "admin_color_scheme_picker")
. Saya ingin menghapus bidang ini:
- Nama panggilan
- Tampilkan nama secara publik sebagai
- AIM, Yahoo, Google talk, dan Tentang diri Anda bidang
- Bagian 'Tampilkan Bilah Admin' bersama dengan 2 kotak centang
Saya memeriksa file 'user-edit.php' untuk melihat apakah ada tindakan / filter yang memungkinkan saya melakukannya, tetapi sepertinya tidak ada. Adakah yang bisa memberi tahu saya cara melakukan ini? Bantuan apa pun akan dihargai. Terima kasih
EDIT: Terima kasih @helenhousandi untuk jawabannya. Saya sudah melakukannya dengan cara ini.
<?php
add_action('admin_footer-profile.php', 'remove_profile_fields');
function remove_profile_fields()
{
if(current_user_can('custom_role'))
{ ?>
<script type="text/javascript">
jQuery("h3:contains('Personal Options')").next('.form-table').remove();
jQuery("h3:contains('Personal Options')").remove();
jQuery("h3:contains('About Yourself')").next('.form-table').remove();
jQuery("h3:contains('About Yourself')").remove();
</script>
<?php }
}
?>
Saya tahu ini sedikit lebih lama, tetapi berhasil! Saya pikir saya akan pergi dengan jawaban @ helenhousandi.
functions.php
atau file plugin. Selama kaitnya benar, itu akan bekerja dari salah satu tempat.Jawaban:
Untuk filter metode kontak
user_contactmethods
::sumber
Meskipun
user_contactmethods
filter adalah salah satu dari sedikit untuk layar profil pengguna, karena bidang lain tidak diperlukan di WordPress, Anda dapat menggunakan jQuery's.hide()
dan.remove()
untuk secara efektif menyingkirkan yang tidak Anda inginkan tanpa komplikasi dalam hal menyimpan informasi . Tentu, seseorang tanpa JS masih akan melihat mereka, tetapi itu adalah minoritas kecil dan saya menduga bahwa perubahan informasi di sana tidak akan benar-benar mempengaruhi apa pun.Contoh menghapus seluruh bagian opsi pribadi (tampilkan bilah admin dan skema warna). Saya tahu itu bukan yang Anda cari sebenarnya, hanya ingin memberi Anda contoh cepat yang saya miliki:
Juga, catatan tentang opsi Tampilkan Bilah Admin: di 3.3 bilah admin menjadi tajuk dan karenanya tidak dapat dinyalakan atau dimatikan, jadi mungkin tidak perlu dikhawatirkan.
Saya memperbarui contoh kode agar lebih akurat dan lengkap. Ada beberapa sisa makanan di sana.
sumber
profile.php
. Saya juga perlu melakukan ini untuk peran khusus yang ditentukan dalam sistem saya. Memperbarui pertanyaan saya dengan jawabannya.$("#nickname,#display_name").parent().parent().remove();
Karena tampaknya tidak ada kait php yang baik untuk ini, saya akhirnya menyembunyikan bidang dengan CSS kemudian menghapusnya dengan JS.
sumber
Dari forum dukungan wordpress Anda dapat melakukan penghapusan menggunakan PHP. Ini menghapus bagian About Yourself:
Kode menggantikan tajuk 'Tentang Dirimu' dengan 'Kata Sandi' dan kemudian menghapus apa pun antara itu dan tabel berikutnya yang ditemukannya (yang merupakan tabel kata sandi).
Plugin WP Hide Dashboard melakukan penggantian jQuery yang serupa jika Anda ingin memperpanjangnya.
sumber
admin_head-profile.php
danadmin_footer-profile.php
sebagai gantinyaHATI-HATI!!
1) Menghapus bidang mungkin tidak baik , seperti pada pembaruan, jika Anda tidak akan mengirim bidang penting ke kait pembaruan WORDPRESS, maka mungkin menetapkan nilai kosong ke bidang tersebut! (misalnya, dalam mengirimkan formulir, harus ada yaitu
<input name="username".../>
)Saya Pikir, bahwa lebih baik untuk HIDE dari pengguna hanya secara visual, dengan jquery
.hide();
dan tidak dengan.remove();
kode CONTOH untuk menyembunyikan bidang " DISPLAY NAME " dan " NICKNAME ":
2) Untuk menyembunyikan bilah admin, ada opsi khusus di menu wordpress (di Pengaturan) . untuk kode khusus, seperti mis
sumber
Menggunakan
dan tambahkan
sebelum JavaScript.
sumber
Tidak ada filter untuk menonaktifkannya. Lihatlah sumber (
/wp-admin/user-edit.php
) ketika Anda perlu melakukan hal-hal seperti ini. Anda bisa menyembunyikannya dengan JS tetapi masih bisa dibuat terlihat dan nilainya diperbarui pada POST.Hanya opsi yang memungkinkan untuk meretas inti sendiri. Pastikan Anda menangani pembaruan dan abaikan bidang-bidang ini pada POST.
sumber