Editor vs. Administrator Role WordPress: Panduan Teknis Lengkap
WordPress dilengkapi dengan sistem kontrol akses berbasis peran (RBAC) yang terperinci dan dibangun langsung ke dalam intinya. Dari semua peran default, Administrator dan Editor adalah dua yang paling berpengaruh — dan paling sering salah ditetapkan. Administrator memiliki kemampuan tak terbatas atas setiap objek WordPress, sementara Editor beroperasi dengan otoritas konten yang luas tetapi tanpa akses sama sekali ke kontrol tingkat infrastruktur seperti tema, plugin, atau pengaturan situs.
Salah memahami perbedaan ini bukan sekadar ketidaknyamanan kecil. Memberikan akses Administrator kepada seorang penulis konten di situs produksi adalah permukaan serangan langsung: satu akun yang disusupi dapat menginstal plugin berbahaya, mengekstrak database, atau mengunci semua pengguna lain. Panduan ini memberi Anda kedalaman teknis untuk membuat keputusan yang tepat setiap saat.
Cara Kerja Peran dan Kemampuan WordPress Sebenarnya
Sebelum membandingkan kedua peran tersebut, ada baiknya memahami arsitektur yang mendasarinya. WordPress tidak menyimpan peran sebagai properti tetap dari akun pengguna. Sebaliknya, ia menyimpan array kemampuan yang diserialisasi di tabel wp_usermeta di bawah kunci wp_capabilities (di mana wp_ adalah awalan tabel Anda). Setiap peran hanyalah sekumpulan kemampuan bernama yang terdaftar di kelas WP_Roles.
Ketika pengguna mencoba suatu tindakan — menerbitkan postingan, menghapus plugin, mengedit profil pengguna lain — WordPress memanggil current_user_can(), yang mencocokkan kemampuan tersimpan pengguna dengan primitif yang diminta. Ini berarti kemampuan bersifat aditif dan, yang terpenting, dapat dikustomisasi per pengguna secara independen dari peran mereka menggunakan plugin seperti Members atau User Role Editor.
Implikasi praktisnya: jika Anda membutuhkan pengguna yang dapat melakukan *hampir* semua yang dapat dilakukan Editor tetapi juga mengelola satu plugin tertentu, Anda tidak perlu meningkatkan mereka ke Administrator. Anda dapat memberikan satu kemampuan tambahan. Memahami hal ini mencegah kesalahan over-provisioning yang paling umum dalam manajemen tim WordPress.
Peran Administrator: Rincian Kemampuan Lengkap
Peran Administrator memetakan hampir setiap kemampuan primitif yang diekspos WordPress. Pada instalasi situs tunggal, ini mencakup namun tidak terbatas pada:
Kemampuan manajemen situs inti:
manage_options — membaca dan menulis semua pengaturan melalui wp-admin/options-general.php, termasuk URL situs, email admin, struktur permalink, dan zona waktu
install_plugins, activate_plugins, update_plugins, delete_plugins — kontrol siklus hidup plugin penuh
install_themes, switch_themes, edit_themes, delete_themes — kontrol siklus hidup tema penuh, termasuk pengeditan file langsung melalui editor tema bawaan (vektor serangan yang signifikan)
edit_files — akses ke editor kode bawaan untuk tema dan plugin (kemampuan ini dinonaktifkan ketika DISALLOW_FILE_EDIT diatur ke true di wp-config.php)
Kemampuan manajemen pengguna:
create_users, edit_users, delete_users, promote_users, list_users — otoritas penuh atas setiap akun pengguna di situs, termasuk kemampuan untuk menurunkan atau menghapus Administrator lain
remove_users — menghapus pengguna dari jaringan Multisite
Kemampuan konten:
edit_others_posts, edit_published_posts, delete_others_posts, delete_published_posts, delete_private_postspublish_posts, publish_pages, edit_pages, delete_pages, edit_others_pagesKemampuan lanjutan:
import — mengimpor konten melalui importer WordPress (dapat digunakan untuk menyuntikkan konten sembarang dalam skala besar)
export — mengekspor seluruh konten situs sebagai file XML, termasuk semua data pengguna
update_core — memicu pembaruan inti WordPress
manage_categories, moderate_comments, unfiltered_html — memposting HTML mentah termasuk tag <script> tanpa sanitasi
Kemampuan unfiltered_html layak mendapat perhatian khusus. Pada instalasi situs tunggal standar, baik Administrator maupun Editor menerimanya. Pada WordPress Multisite, hanya Super Admin yang mempertahankannya. Ini adalah batas keamanan yang bermakna: tanpa unfiltered_html, filter wp_kses_post() menghapus JavaScript dan markup berpotensi berbahaya lainnya dari konten yang disimpan.
Kapan Menetapkan Peran Administrator
Orang yang memiliki akun hosting dan bertanggung jawab atas integritas teknis situs
Pengembang atau insinyur DevOps yang telah diverifikasi yang melakukan pengembangan tema, konfigurasi plugin, atau pekerjaan integrasi sisi server
Spesialis migrasi selama operasi impor/ekspor satu kali (pertimbangkan untuk mencabut peran setelahnya)
Catatan operasional penting: Jangan pernah menetapkan Administrator ke akun bersama atau generik. Setiap Administrator harus merupakan individu bernama dengan kata sandi yang kuat dan unik serta autentikasi dua faktor yang diaktifkan. Jika Anda menjalankan WordPress di lingkungan VPS Hosting, padukan kebersihan Administrator tingkat WordPress dengan pemisahan pengguna tingkat OS — proses server web Anda tidak boleh pernah berjalan sebagai root, dan kepemilikan file WordPress Anda harus berbeda dari pengguna server web Anda.
Peran Editor: Rincian Kemampuan
Peran Editor dirancang khusus untuk operasi konten. Ini memberikan otoritas luas atas postingan, halaman, media, komentar, dan taksonomi — tetapi dengan sengaja mengecualikan setiap kemampuan tingkat infrastruktur.
Kemampuan konten yang dimiliki Editor:
edit_posts, edit_others_posts, edit_published_posts, edit_private_postsdelete_posts, delete_others_posts, delete_published_posts, delete_private_postspublish_posts, publish_pagesedit_pages, edit_others_pages, edit_published_pages, edit_private_pagesdelete_pages, delete_others_pages, delete_published_pages, delete_private_pagesmanage_categories — membuat, mengganti nama, dan menghapus kategori dan tagmoderate_comments — menyetujui, membatalkan persetujuan, menandai sebagai spam, atau menghapus komentar secara permanenupload_files — menambahkan media ke perpustakaan; mengedit metadata gambar dan teks altread_private_posts, read_private_pages — melihat konten yang tidak dapat diakses publikunfiltered_html — pada instalasi situs tunggal, Editor dapat memposting HTML mentah (lihat peringatan Multisite di atas)Apa yang secara eksplisit tidak dapat dilakukan Editor:
- Mengakses
wp-admin/options-general.phpatau layar pengaturan apa pun - Menginstal, mengaktifkan, menonaktifkan, atau menghapus plugin atau tema
- Melihat atau memodifikasi akun pengguna mana pun selain profil mereka sendiri
- Menjalankan pembaruan inti WordPress
- Mengakses editor file tema atau plugin bawaan
- Mengubah struktur permalink, yang akan merusak semua URL yang ada di seluruh situs
- Mengekspor atau mengimpor data situs
Kapan Menetapkan Peran Editor
- Editor pengelola atau direktur konten yang memiliki kalender editorial dan menyetujui draf dari beberapa kontributor
- Spesialis SEO yang perlu menerbitkan, menjadwalkan, dan mengoptimalkan postingan tetapi tidak ada urusan menyentuh pengaturan plugin
- Manajer media sosial atau pemasaran yang bertanggung jawab menjaga blog tetap aktif
- Klien yang perlu memperbarui halaman mereka sendiri tanpa risiko secara tidak sengaja merusak situs
Administrator vs. Editor: Perbandingan Berdampingan
| Area Kemampuan | Administrator | Editor |
|---|---|---|
| Instal / perbarui / hapus plugin | Ya | Tidak |
| Instal / perbarui / hapus tema | Ya | Tidak |
| Edit file tema / plugin (editor kode) | Ya (kecuali DISALLOW_FILE_EDIT) | Tidak |
| Kelola pembaruan inti WordPress | Ya | Tidak |
| Akses pengaturan situs (opsi) | Ya | Tidak |
| Ubah struktur permalink | Ya | Tidak |
| Buat / edit / hapus pengguna lain | Ya | Tidak |
| Tetapkan atau ubah peran pengguna | Ya | Tidak |
| Terbitkan dan edit postingan sendiri | Ya | Ya |
| Edit dan hapus postingan pengguna lain | Ya | Ya |
| Kelola kategori dan tag | Ya | Ya |
| Moderasi komentar | Ya | Ya |
| Unggah dan kelola media | Ya | Ya |
| Baca postingan dan halaman privat | Ya | Ya |
| Posting HTML tidak terfilter (situs tunggal) | Ya | Ya |
| Ekspor konten situs | Ya | Tidak |
| Impor konten | Ya | Tidak |
| Akses admin jaringan Multisite | Hanya Super Admin | Tidak |
Implikasi Keamanan dari Kesalahan Penetapan Peran
Masalah Editor dengan Hak Berlebihan
Pola umum di agensi: seorang penulis konten diberi akses Administrator karena “lebih mudah.” Ini menciptakan beberapa risiko konkret:
- Instalasi plugin sebagai vektor eksekusi kode. Setiap Administrator dapat menginstal plugin. Plugin adalah kode PHP yang dieksekusi di server Anda. Akun Administrator yang disusupi berarti eksekusi kode jarak jauh.
- Pemanenan kredensial melalui ekspor. Alat ekspor WordPress menghasilkan file XML yang berisi semua konten postingan, komentar, dan metadata penulis. Administrator dapat memicunya secara diam-diam.
- Persistensi eskalasi hak istimewa. Penyerang yang mendapatkan akses Administrator dapat membuat akun Administrator baru, lalu menghapus buktinya — mengunci pemilik yang sah.
- Penyalahgunaan
unfiltered_html. Bahkan tanpa akses plugin, Administrator dapat menyuntikkan tag<script>langsung ke konten postingan, memungkinkan serangan XSS tersimpan terhadap pengunjung situs.
Memperkuat Peran Administrator
Di luar penetapan peran, terapkan kontrol tingkat WordPress ini pada situs produksi mana pun:
Tambahkan berikut ini ke wp-config.php untuk menonaktifkan editor file bawaan:
define( 'DISALLOW_FILE_EDIT', true );
define( 'DISALLOW_FILE_MODS', true ); // Also blocks plugin/theme installationBatasi area admin WordPress berdasarkan IP di tingkat server. Untuk Nginx:
location /wp-admin/ {
allow 203.0.113.0/24;
deny all;
}Untuk Apache, tambahkan ke .htaccess:
<Files "wp-login.php">
Require ip 203.0.113.0/24
</Files>Terapkan kata sandi yang kuat dan autentikasi dua faktor menggunakan plugin seperti WP 2FA atau Wordfence Login Security. Jika situs Anda berjalan di Dedicated Server, pertimbangkan untuk menempatkan admin WordPress di belakang VPN atau terowongan SSH daripada mengeksposnya ke internet publik sama sekali.
Melindungi Peran Editor dari Penyalahgunaan
Peran Editor jauh lebih aman daripada Administrator, tetapi tidak tanpa risiko:
- Editor dengan
unfiltered_htmldapat menyuntikkan piksel pelacak, pengalihan afiliasi, atau skrip berbahaya ke konten postingan. Di Multisite, kemampuan ini dihapus — argumen kuat untuk menjalankan jaringan Multisite ketika Anda memiliki banyak kontributor konten. - Editor dapat menghapus secara permanen postingan atau halaman mana pun, termasuk yang tidak mereka buat. Tidak ada tempat sampah bawaan untuk halaman. Gunakan strategi revisi atau pencadangan untuk mengurangi risiko ini.
- Editor dapat menyetujui komentar, termasuk yang berisi tautan spam, yang memengaruhi SEO dan reputasi situs Anda.
WordPress Multisite: Bagaimana Peran Berubah
Pada jaringan WordPress Multisite, hierarki peran mendapatkan tingkatan tambahan: Super Administrator. Super Admin berada di atas semua Administrator tingkat situs dan mengontrol pengaturan seluruh jaringan, aktivasi plugin di semua situs, dan pembuatan pengguna di tingkat jaringan.
Di Multisite, Administrator tingkat situs kehilangan beberapa kemampuan yang ada pada instalasi situs tunggal, termasuk kemampuan untuk menginstal plugin (hanya Super Admin yang dapat melakukannya di seluruh jaringan) dan kemampuan unfiltered_html. Ini menjadikan Multisite arsitektur yang lebih dapat dipertahankan untuk agensi yang mengelola situs klien atau penerbit yang mengelola beberapa properti editorial.
Jika Anda membangun platform penerbitan multi-tenant, VPS dengan cPanel dapat menyederhanakan lapisan manajemen sisi server sementara WordPress Multisite menangani pemisahan peran lapisan aplikasi.
Peran Kustom: Ketika Administrator maupun Editor Tidak Cocok
Fungsi add_role() dan add_cap() WordPress memungkinkan Anda mendefinisikan peran dengan kemampuan yang tepat sesuai kebutuhan alur kerja Anda. Misalnya, Editor Senior yang dapat melakukan semua yang dapat dilakukan Editor ditambah mengelola pengguna (tetapi bukan plugin) dapat dibuat secara programatik:
add_role(
'senior_editor',
'Senior Editor',
array(
// Inherit all standard Editor capabilities
'read' => true,
'edit_posts' => true,
'edit_others_posts' => true,
'edit_published_posts' => true,
'publish_posts' => true,
'delete_posts' => true,
'delete_others_posts' => true,
'delete_published_posts' => true,
'edit_pages' => true,
'edit_others_pages' => true,
'edit_published_pages' => true,
'publish_pages' => true,
'delete_pages' => true,
'manage_categories' => true,
'moderate_comments' => true,
'upload_files' => true,
// Extended capability
'list_users' => true,
'edit_users' => true,
)
);Tempatkan kode ini di plugin khusus situs (bukan di functions.php tema) agar peran tetap ada setelah perubahan tema. Peran disimpan di database setelah pendaftaran pertama, jadi add_role() hanya perlu dijalankan sekali — bungkus dalam hook aktivasi plugin menggunakan register_activation_hook().
Matriks Keputusan Penetapan Peran Praktis
Gunakan daftar periksa ini sebelum menetapkan peran apa pun:
Tetapkan Administrator hanya jika pengguna:
- Memiliki situs atau memiliki tanggung jawab kontraktual atas operasi teknisnya
- Perlu menginstal, mengonfigurasi, atau memperbarui plugin dan tema
- Harus mengelola akun pengguna lain atau mengubah peran pengguna
- Memerlukan akses ke pengaturan WordPress, struktur permalink, atau URL situs
- Telah mengaktifkan autentikasi dua faktor dan menggunakan akun unik yang tidak dibagikan
- Memahami bahwa
DISALLOW_FILE_MODSakan diatur ketruedalam produksi
Tetapkan Editor jika pengguna:
- Bertanggung jawab atas kualitas konten, jadwal penerbitan, atau tinjauan editorial
- Perlu mengelola postingan dan halaman yang dibuat oleh anggota tim lain
- Harus dapat memoderasi komentar dan mengelola media
- Tidak membutuhkan — dan tidak seharusnya memiliki — akses ke plugin, tema, atau layar pengaturan apa pun
- Mungkin merupakan klien, pekerja lepas, atau kontraktor yang keamanan akunnya tidak dapat Anda kendalikan sepenuhnya
Pertimbangkan peran kustom jika:
- Editor bawaan terlalu membatasi (misalnya, pengguna membutuhkan
list_usersuntuk plugin alur kerja editorial) - Administrator bawaan terlalu permisif (misalnya, pengembang yang membutuhkan akses plugin tetapi tidak boleh menyentuh akun pengguna)
- Anda menjalankan jaringan Multisite dengan tanggung jawab yang berbeda di seluruh situs
Untuk tim yang mengelola WordPress bersamaan dengan email transaksional, pertimbangkan untuk memadukan strategi peran Anda dengan pengaturan Email Hosting khusus sehingga email notifikasi WordPress (pengaturan ulang kata sandi, pendaftaran pengguna baru, peringatan komentar) dikirim melalui server email yang andal dan terautentikasi daripada sendmail default server hosting — titik kegagalan pengiriman umum yang memengaruhi alur kerja setiap peran.
Jika situs WordPress Anda menangani e-commerce, keanggotaan, atau data pengguna apa pun, pastikan Sertifikat SSL Anda terkini dan dikonfigurasi dengan benar. Sertifikat yang kedaluwarsa tidak hanya memengaruhi SEO — ini merusak konteks keamanan browser yang melindungi kredensial login Administrator saat transit.
Poin Teknis Utama
- Kemampuan WordPress disimpan per pengguna di
wp_usermeta, bukan dikodekan keras — kemampuan tersebut dapat dikustomisasi tanpa mengubah peran yang ditampilkan pengguna. DISALLOW_FILE_EDITdanDISALLOW_FILE_MODSdiwp-config.phpadalah hal yang tidak dapat dinegosiasikan pada situs produksi mana pun dengan beberapa Administrator.- Kemampuan
unfiltered_htmlada untuk Administrator dan Editor pada instalasi situs tunggal. Multisite menghapusnya dari semua orang di bawah Super Admin. - Editor dapat menghapus secara permanen postingan atau halaman mana pun, termasuk konten pengguna lain. Terapkan strategi pencadangan atau revisi sebelum memberikan peran ini kepada siapa pun di luar tim inti Anda.
- Jangan pernah menggunakan akun Administrator bersama. Satu akun per orang, autentikasi dua faktor wajib, dan log audit diaktifkan melalui plugin seperti WP Activity Log.
- Peran kustom melalui
add_role()adalah solusi yang tepat ketika tidak ada peran default yang cocok — jangan over-provision untuk mengkompensasi kemampuan yang hilang. - Di Multisite, Administrator tingkat situs tidak dapat menginstal plugin. Ini adalah fitur, bukan keterbatasan — ini adalah arsitektur yang tepat untuk lingkungan multi-tenant yang dikelola.
Pertanyaan yang Sering Diajukan
Bisakah Editor menghapus postingan pengguna lain di WordPress?
Ya. Peran Editor mencakup delete_others_posts dan delete_others_pages. Editor dapat menghapus secara permanen postingan atau halaman mana pun di situs, terlepas dari siapa yang membuatnya. Tidak ada langkah konfirmasi bawaan atau tempat sampah untuk halaman, sehingga tindakan ini tidak dapat dibatalkan tanpa cadangan.
Apa perbedaan antara Administrator dan Super Administrator di WordPress?
Pada instalasi WordPress situs tunggal, Administrator adalah peran tertinggi. Pada jaringan WordPress Multisite, Super Administrator berada di atas semua Administrator tingkat situs dan mengontrol pengaturan seluruh jaringan, instalasi plugin di semua situs, dan kemampuan untuk menambah atau menghapus situs dari jaringan. Administrator tingkat situs di Multisite tidak dapat menginstal plugin atau menggunakan unfiltered_html.
Bisakah saya memberi Editor akses ke pengaturan satu plugin tertentu tanpa menjadikannya Administrator?
Ya. Gunakan add_cap() untuk memberikan kemampuan tertentu kepada pengguna individual, atau buat peran kustom yang mencakup kemampuan default Editor ditambah kemampuan spesifik yang didaftarkan plugin. Sebagian besar plugin yang dikodekan dengan baik menggunakan current_user_can( 'manage_options' ) atau kemampuan kustom untuk halaman pengaturan mereka — periksa sumber plugin untuk mengidentifikasi kemampuan yang tepat yang diperlukan.
Apakah aman memiliki beberapa Administrator di situs WordPress?
Ini sepenuhnya bergantung pada kontrol operasional Anda. Beberapa Administrator melipatgandakan permukaan serangan — setiap akun adalah titik masuk potensial. Jika beberapa Administrator diperlukan, terapkan autentikasi dua faktor untuk semua, batasi akses /wp-admin/ berdasarkan IP di tingkat server, atur DISALLOW_FILE_MODS ke true, dan gunakan plugin log aktivitas untuk mengaudit semua tindakan administratif.
Bagaimana cara mengaudit kemampuan apa yang sebenarnya dimiliki pengguna WordPress tertentu?
Query database secara langsung atau gunakan plugin seperti Members atau User Role Editor. Untuk pemeriksaan programatik, gunakan get_user_meta( $user_id, $wpdb->prefix . 'capabilities', true ) dalam skrip kustom atau WordPress CLI:
wp user get <user_id> --field=roles
wp user list-caps <user_id>Perintah wp user list-caps mengeluarkan setiap kemampuan yang dimiliki pengguna, termasuk yang diberikan secara individual di luar peran yang ditetapkan — yang merupakan cara paling andal untuk mengaudit akun yang over-provisioned.
