WordPress, kullanıcı dostu arayüzüyle içerik üretimini kolaylaştırırken, çok kullanıcılı sitelerde görev dağılımını sağlamak için gelişmiş kullanıcı yetkileri (rol ve izinler) sistemini de beraberinde getirir. Bu yazıda, WordPress kullanıcı rolleri nelerdir, hangi yetkileri kapsar ve kullanıcı yetkilerini nasıl değiştireceğinizi tüm detaylarıyla öğreneceksiniz.
👤 WordPress’te Kullanıcı Rolü Nedir?
Kullanıcı rolleri, WordPress’te her kullanıcıya belirli yetkiler atamak için kullanılır. Bu sistem sayesinde, kullanıcılar yalnızca izin verilen işlemleri gerçekleştirebilir. Özellikle çok yazarlı bloglar, haber siteleri veya ekiplerle yönetilen projelerde güvenliği ve düzeni sağlamak açısından kritik öneme sahiptir.
🔑 Varsayılan WordPress Kullanıcı Rolleri ve Yetkileri
1. Abone (Subscriber)
- Yalnızca kendi profilini görüntüleyip düzenleyebilir.
- Yorum yapabilir, e-posta aboneliği gibi işlemler için kullanılır.
- En düşük yetkiye sahip roldür.
2. Katılımcı (Contributor)
- Yazı oluşturabilir, ancak yayımlayamaz.
- Kendi yazısını düzenleyebilir.
- Medya dosyası yükleyemez.
3. Yazar (Author)
- Kendi yazılarını oluşturabilir, düzenleyebilir ve yayımlayabilir.
- Yalnızca kendi yazılarını yönetebilir.
- Medya yükleyebilir.
4. Editör (Editor)
- Tüm yazıları, sayfaları, yorumları ve kategorileri yönetebilir.
- Diğer yazarların içeriklerini düzenleyebilir ve yayımlayabilir.
- Sitedeki içerik yönetiminin çoğunu sağlar.
5. Yönetici (Administrator)
- Tüm siteye tam erişim sahibidir.
- Eklentiler, temalar, kullanıcılar, ayarlar ve her türlü içerik üzerinde tam kontrole sahiptir.
- Genellikle site sahibi veya geliştirici bu roldedir.
🛠️ WordPress’te Kullanıcı Yetkileri Nasıl Değiştirilir?
1. Kullanıcı Paneline Erişim
- WordPress yönetim panelinden Kullanıcılar > Tüm Kullanıcılar menüsüne gidin.
- Rolünü değiştirmek istediğiniz kullanıcıyı bulun.
2. Rolü Değiştirin
- Kullanıcının adının üzerine gelip “Düzenle” seçeneğine tıklayın.
- Açılan sayfada, “Rol” açılır menüsünden yeni bir rol seçin.
- Sayfanın en altında “Kullanıcıyı Güncelle” butonuna tıklayarak işlemi tamamlayın.
🔄 Eklenti ile Gelişmiş Yetki Kontrolü
WordPress’te varsayılan roller bazen yeterli gelmeyebilir. Bu durumda özel yetkiler atamak ya da yeni roller oluşturmak isterseniz aşağıdaki eklentilerden faydalanabilirsiniz:
🔌 User Role Editor (Önerilen)
- Mevcut rollerin yetkilerini detaylı olarak düzenlemenizi sağlar.
- Yeni roller oluşturabilir, belirli izinleri ekleyip çıkarabilirsiniz.
- Oldukça kullanıcı dostudur ve ücretsiz sürümü çoğu iş için yeterlidir.
Kurulum:
- Eklentiler > Yeni Ekle yolunu izleyin.
- “User Role Editor” yazın ve çıkan sonucu yükleyip etkinleştirin.
- Kullanıcılar > User Role Editor menüsünden rol ayarlarına ulaşabilirsiniz.
🎯 Örnek: Yazarın Medya Yüklemesine İzin Vermek
Normalde “Katılımcı” rolündeki kullanıcılar medya yükleyemez. Ancak “User Role Editor” eklentisiyle bu izinleri açabilirsiniz:
- Kullanıcı rolünü seçin (örneğin Contributor).
- “upload_files” yetkisini işaretleyin.
- “Güncelle” diyerek kaydedin.
Bu sayede katılımcılar artık görsel yükleyebilir hale gelir.
⚠️ Güvenlik İçin Dikkat Edilmesi Gerekenler
- Yalnızca güvendiğiniz kişilere Editör veya Yönetici yetkisi verin.
- Kullanıcılar arasında görev dağılımını net yapın.
- Admin şifresini güçlü tutun ve iki aşamalı doğrulama (2FA) kullanın.
- Kullanılmayan kullanıcı hesaplarını silin veya devre dışı bırakın.
📌 Sonuç: Kullanıcı Yetkilerini Doğru Ayarlamak Güvenliktir
WordPress kullanıcı rolleri, sitenizin hem düzenli hem de güvenli çalışmasını sağlar. İçerik üretimi ve site yönetimi süreçlerinde doğru kişiye doğru yetkiyi vermek, zaman kazandırır ve hatalı işlemleri en aza indirir. Eklenti desteğiyle bu sistemi daha esnek hale getirebilir, projeye özel kullanıcı yönetimi sağlayabilirsiniz.
🔧 WordPress’te Özel Kullanıcı Rolü Oluşturma (User Role Editor ile)
WordPress varsayılan kullanıcı rolleri çoğu site için yeterli olsa da, bazı durumlarda tam ihtiyacınıza uygun özel kullanıcı rolleri tanımlamanız gerekebilir. Örneğin: “SEO Editörü”, “Teknik Destek”, “İçerik Kontrolcüsü” gibi görevler için özel yetkiler tanımlamak mantıklıdır.
🛠️ User Role Editor ile Özel Rol Oluşturma Adımları
- Eklentiyi Kurun ve Etkinleştirin
- Admin panelinden: Eklentiler > Yeni Ekle > User Role Editor aratın ve yükleyin.
- Yeni Rol Oluşturun
- Kullanıcılar > User Role Editor menüsüne girin.
- Sağ üstte “Add Role” (Rol Ekle) butonuna tıklayın.
- Yeni rol adı verin (örnek:
seo_editor
) ve isterseniz var olan bir rolden (örneğinEditor
) kopyalayın.
- Yetkileri Belirleyin
- Açılan yetki listesinde rolünüz için gerekli izinleri işaretleyin.
- Örnek:
edit_posts
,upload_files
,edit_others_posts
,edit_pages
- Örnek:
- “Update” (Güncelle) diyerek rolü kaydedin.
- Açılan yetki listesinde rolünüz için gerekli izinleri işaretleyin.
Bu şekilde özel bir kullanıcı rolü oluşturabilir ve bu rolü dilediğiniz kullanıcıya atayabilirsiniz.
🛍️ WooCommerce Kullanıcı Yetkileri ile Entegrasyon
WooCommerce kurulu WordPress sitelerinde bazı kullanıcı rollerine özel e-ticaret yetkileri eklenir:
📋 WooCommerce Varsayılan Ekstra Roller:
- Customer (Müşteri): Sipariş verir ama yönetim paneline erişemez.
- Shop Manager (Mağaza Yöneticisi): Siparişleri, ürünleri ve kuponları yönetebilir; ancak tüm site ayarlarına erişemez.
🎯 Shop Manager Yetkilerini Özelleştirmek
User Role Editor ile “Shop Manager” rolüne şu gibi yetkiler ekleyebilirsiniz:
edit_products
,edit_shop_orders
,view_woocommerce_reports
gibi e-ticaret işlemleriedit_posts
ekleyerek içerik yazabilmemanage_woocommerce
gibi yönetici benzeri yetkiler (⚠ dikkatli olun)
🔐 WooCommerce İçin Özel Rol Örneği: “Ürün Editörü”
Sadece ürün ekleyip düzenleyebilen ama siparişleri görmeyen bir kullanıcı oluşturmak için:
- Yeni bir rol oluşturun:
product_editor
- Şu izinleri ekleyin:
edit_products
edit_published_products
upload_files
read
- Sipariş ve kuponlara ait izinleri eklemeyin
Bu sayede içerik üreticileriniz sadece ürün kısmıyla ilgilenir, siparişlere müdahale edemez.
💡 İpuçları
- Kullanıcılara özel admin arayüzü göstermek için Adminimize veya WP Admin UI Customize gibi eklentileri kullanabilirsiniz.
- Kodla çözmek istersen
add_role()
veremove_role()
fonksiyonlarıyla temaya özel rol tanımlaması yapılabilir.
1. 🧩 WordPress’te functions.php
ile Özel Kullanıcı Rolü Oluşturma
phpKopyalaDüzenlefunction wp_custom_rol_olustur() {
add_role('urun_editoru', 'Ürün Editörü', [
'read' => true,
'edit_products' => true,
'edit_published_products' => true,
'upload_files' => true,
]);
}
add_action('init', 'wp_custom_rol_olustur');
Bu kod Ürün Editörü
adında yeni bir rol oluşturur. Sipariş, kupon gibi yetkilere sahip değildir.
2. 📌 Belirli Roldeki Kullanıcılara Özel Admin Menüsü Göstermek
phpKopyalaDüzenlefunction wp_admin_menu_ozellestirme() {
if (!current_user_can('manage_woocommerce')) {
remove_menu_page('edit.php?post_type=shop_order'); // Siparişler
remove_menu_page('edit.php?post_type=shop_coupon'); // Kuponlar
remove_menu_page('woocommerce'); // WooCommerce Ayarları
}
}
add_action('admin_menu', 'wp_admin_menu_ozellestirme', 999);
Bu kod ile, örneğin “Ürün Editörü” rolündeki kullanıcılar siparişler, kuponlar ve WooCommerce ayarlarını görmez.
3. 🔒 Kullanıcıya Sadece Kendi Ürünlerini Göster (Custom Query)
WooCommerce ürünleri veya içeriklerde, sadece kullanıcıya ait olanları göstermek için:
phpKopyalaDüzenleadd_action('pre_get_posts', 'wp_sadece_kendi_icerigi_goster');
function wp_sadece_kendi_icerigi_goster($query) {
if (!is_admin() && $query->is_main_query() && current_user_can('urun_editoru')) {
if ($query->get('post_type') === 'product') {
$query->set('author', get_current_user_id());
}
}
}
Bu, ürün listeleme sayfasında sadece kullanıcının kendi oluşturduğu ürünleri görmesini sağlar.
4. 🎛️ Admin Panelde Kendi Arayüzünü Oluştur (Eklentiye Alternatif)
Eğer User Role Editor eklentisi kurmak istemiyorsan, kendi mini rol editörünü oluşturabilirsin:
phpKopyalaDüzenlefunction wp_rol_listesi_ekle() {
add_menu_page(
'Rol Listesi',
'Kullanıcı Rolleri',
'manage_options',
'rol-listesi',
'wp_rol_listesi_icerik'
);
}
add_action('admin_menu', 'wp_rol_listesi_ekle');
function wp_rol_listesi_icerik() {
global $wp_roles;
echo '<h2>Mevcut Roller</h2><ul>';
foreach ($wp_roles->roles as $role => $details) {
echo '<li><strong>' . $details['name'] . '</strong>: ' . implode(', ', array_keys($details['capabilities'])) . '</li>';
}
echo '</ul>';
}
Bu kod, admin panelde “Kullanıcı Rolleri” adında basit bir arayüzle mevcut tüm rolleri ve yetkilerini listeler.