Bagaimana kita membatasi akses ke area admin WP untuk semua pengguna kecuali admin?
Para pengguna di situs kami memiliki halaman profil mereka sendiri yang melakukan semua fungsi yang mereka butuhkan.
Jadi admin harus terlarang untuk semua kecuali admin.
Bagaimana cara melakukannya?
Jawaban:
Kami dapat menghubungkan ke
admin_init
tindakan dan memeriksa apakah pengguna adalah administrator dengan menggunakancurrent_user_can()
fungsi untuk melihat apakah pengguna saat ini dapatmanage_options
, yang merupakan sesuatu yang hanya dapat dilakukan oleh administrator.Kode ini, ketika disisipkan ke file functions.php Anda, akan menampilkan pesan ketika non-admin mencoba mengakses dasbor:
Jika mau, Anda dapat memberikan pengalaman pengguna yang lebih baik dengan mengarahkan ulang pengguna ke beranda:
Jika Anda ingin mengarahkan pengguna ke halaman profil mereka, ganti
home_url()
kode di atas dengan tautan.sumber
manage_options
kemampuan adalah cara yang diterima untuk memeriksa pengguna admin. Bahkan Mark Jaquith mengatakan demikianmanage_options
adalah sesuatu yang hanya bisa dilakukan oleh "administrator" dan itu tidak benar,manage_options
adalah kemampuan dan dapat dihapus dari peran admin atau ditugaskan ke peran pengguna lain. Yang penting adalah mengetahui apa yang ingin Anda lakukan dan memilih cara terbaik. Lihat jawaban saya, saya jelaskan ini.manage_options
denganmanage_network
. Yang terakhir akan menonaktifkan dasbor juga untuk "administrator situs" default tetapi meninggalkan akses yang tersedia untuk Super Administrator (Admin jaringan).Anda bisa menulis plugin dan mengaitkannya
admin_init
.Kodeks sebenarnya memberikan contoh dengan fitur yang Anda cari.
http://codex.wordpress.org/Plugin_API/Action_Reference/admin_init#Contoh:_Access_control
sumber
Beberapa jawaban yang diberikan bisa baik-baik saja di sebagian besar situasi tetapi saya pikir tidak ada satupun dari mereka yang memberikan garansi untuk melakukan apa yang diminta karena tidak ada jawaban yang memeriksa peran pengguna, mereka memeriksa kemampuan dan kemampuan yang dapat ditetapkan dan dihapus dari peran formulir. Jadi, untuk memberikan jawaban yang tepat, peran pengguna harus diperiksa, bukan kemampuan:
Jika Anda ingin memastikan bahwa pengguna memiliki kemampuan "manage_options", Anda bisa. Bahkan, ini adalah opsi terbaik dalam banyak kasus. Meskipun kemampuan ini dikaitkan secara default ke pengguna administrator, kemampuan dapat dihapus dari peran admin atau dapat ditugaskan ke peran pengguna lain. Itulah sebabnya, dalam kebanyakan kasus, memeriksa apa yang bisa atau tidak bisa dilakukan pengguna lebih baik daripada memeriksa peran pengguna. Jadi, dalam banyak kasus memeriksa kemampuan harus menjadi cara yang dipilih tetapi Anda harus memiliki konsep ini jelas dan memilih opsi terbaik untuk situasi dan tujuan Anda:
sumber
Coba plugin Adminimize .
Anda dapat mengunci semuanya dengan cukup baik dengan itu.
Anda juga dapat mencoba mengatur akses melalui file htaccess
sumber
sumber
'administrator'
bukan kemampuan. Ini berfungsi hanya untuk menjaga kompatibilitas ke belakang. Periksa'update_core'
atau kemampuan admin lainnya.Masukkan baris ini di
functions.php
sumber
Coba ini, jangan pernah melalui kesalahan di hadapan pengguna akhir. Melawan UX yang bagus. Kode ini mengarahkan mereka ke Beranda.
sumber
Saya akan menggunakan WP Frontend dan mengaturnya untuk semua orang mengharapkan admin.
sumber