Bir WordPress sitesini müşteriye teslim ettiğiniz o anı düşünün. Her şey mükemmel çalışıyor, tasarım harika. Ancak iki gün sonra telefonunuz çalıyor: Site bozuldu! Genellikle bunun sebebi, teknik bilgisi olmayan bir müşterinin admin panelinde Görünüm ayarlarını kurcalaması veya yanlışlıkla kritik bir eklentiyi devre dışı bırakması oluyor.

Bu senaryoyu yaşamak zorunda değilsiniz. WordPress admin panelini sadeleştirmek, sadece estetik bir tercih değil, aynı zamanda sitenin sağlığını koruyan stratejik bir hamle. Müşteriye sadece içerik girebileceği, kafasının karışmayacağı temiz bir panel sunmak hem sizin profesyonelliğinizi gösterir hem de gelecekteki destek taleplerini minimuma indirir.

Bu rehberde, eklenti kullanmadan, doğrudan kodlarla admin menülerini nasıl gizleyeceğinizi ve yönetici panelini nasıl kurşun geçirmez hale getireceğinizi anlatacağım.

Kod Eklemeye Başlamadan Önce: Child Theme Uyarısı

Kodlara girmeden önce çok kritik bir uyarı yapmam gerekiyor. Bu kodları doğrudan kullandığınız temanın functions.php dosyasına eklerseniz, tema güncellemesi geldiği an tüm emekleriniz silinir.

Bu yüzden yaptığımız değişikliklerin kalıcı olması için mutlaka bir Child Theme (Alt Tema) kullanmalısınız. Eğer bir alt tema kullanmıyorsanız veya bu kodları temadan bağımsız yönetmek isterseniz, Code Snippets gibi eklentilerle de bu kodları sisteme dahil edebilirsiniz. Ayrıca, herhangi bir işlem yapmadan önce sitenizin yedeğini almayı ihmal etmeyin. Özellikle canlı bir sitede çalışıyorsanız, kodları önce Development, Staging ve Production Ortamları arasındaki farkları gözeterek bir test ortamında denemeniz en güvenli yoldur.

functions.php ile Admin Menülerini Gizleme

WordPress esnek yapısı sayesinde admin panelindeki her öğeye müdahale etmemize izin veriyor. Aşağıdaki adımları takip ederek gereksiz kalabalığı ortadan kaldırabilirsiniz.

Tüm Kullanıcılar İçin Menüleri Kaldırma

Aşağıdaki kod bloğu, admin panelindeki standart menüleri herkes için (yönetici dahil) gizler. Bu genellikle kullanılmayan özellikler (örneğin sitenizde Yorumlar kapalıysa) için ideal.

Bu kodu functions.php dosyanızın en altına ekleyebilirsiniz:

function devcrea_remove_admin_menus() {
    // remove_menu_page('edit.php');                   // Yazılar
    // remove_menu_page('upload.php');                 // Ortam (Medya)
    // remove_menu_page('edit.php?post_type=page');    // Sayfalar
    remove_menu_page('edit-comments.php');          // Yorumlar
    // remove_menu_page('themes.php');                 // Görünüm
    // remove_menu_page('plugins.php');                // Eklentiler
    // remove_menu_page('users.php');                  // Kullanıcılar
    remove_menu_page('tools.php');                  // Araçlar
    // remove_menu_page('options-general.php');        // Ayarlar
}
add_action('admin_menu', 'devcrea_remove_admin_menus');

Yukarıdaki kodda, gizlemek istediğiniz satırın başındaki // işaretlerini kaldırmanız yeterli. Örneğin sitenizde blog yoksa, edit.php satırını aktif hale getirerek Yazılar sekmesini tamamen uçurabilirsiniz.

Gizlemek İstediğin Menünün URL Slug’ını Nasıl Bulursun?

Ezbere kod yazmak zorunda değilsiniz. Bazen Contact Form 7, Elementor veya WooCommerce gibi eklentilerin menülerini de gizlemek isteyebilirsiniz. Peki bunların kod karşılığını (slug) nasıl bulacaksınız?

Yöntem çok basit:

  1. Admin panelinde gizlemek istediğiniz menüye tıklayın.
  2. Tarayıcınızın adres çubuğuna bakın.
  3. wp-admin/ kısmından sonra gelen admin.php?page=sozluk-ayarlari gibi bir yapı göreceksiniz.

Burada page= den sonra gelen kısım veya ana dosya adı (örneğin wpcf7) sizin slug'ınız oluyor.

Örneğin Contact Form 7 menüsü için adres çubuğunda admin.php?page=wpcf7 yazar. Bunu gizlemek için şu kodu kullanırsınız:

remove_menu_page('wpcf7');

Sadece Müşteriler (Admin Olmayanlar) İçin Gizleme

İşin en can alıcı noktası burası. Siz bir yönetici olarak her şeye erişebilmelisiniz, ancak müşteriniz veya editörünüz sadece işine yarayanı görmeli.

Bunun için WordPress'in current_user_can fonksiyonunu kullanarak bir koşul ekliyoruz. Aşağıdaki kod, eğer kullanıcı administrator (yönetici) yetkisine sahip değilse menüleri gizler:

PHP

function devcrea_hide_menus_for_clients() {
    // Eğer kullanıcı yönetici DEĞİLSE bu kod çalışsın
    if (!current_user_can('manage_options')) {
        remove_menu_page('themes.php');          // Görünüm (Tema ayarlarını bozmalarını engeller)
        remove_menu_page('plugins.php');         // Eklentiler (Siteyi çökertmelerini engeller)
        remove_menu_page('tools.php');           // Araçlar
        remove_menu_page('options-general.php'); // Ayarlar
        remove_menu_page('edit-comments.php');   // Yorumlar
    }
}
add_action('admin_menu', 'devcrea_hide_menus_for_clients');

Bu strateji sayesinde, siz panele girdiğinizde her şeyi görürsünüz; ancak müşteriniz girdiğinde sadece Yazılar, Sayfalar ve Ortam sekmelerini görür. Böylece hem site güvende kalır hem de müşteri Nereye basacağım? karmaşasından kurtulur.

Güvenlik İçin Tema ve Eklenti Düzenleyiciyi Kapatma

WordPress panelinde Görünüm > Tema Dosya Düzenleyicisi diye bir alan bulunur. Burası, sitenin kodlarına tarayıcı üzerinden doğrudan müdahale edilmesini sağlar. Bir noktalı virgül hatası bile tüm siteyi beyaz ekrana düşürebilir.

Bu alanı müşteriden (ve aslında güvenlik için kendinizden bile) gizlemeniz en doğrusu. Bunun için wp-config.php dosyasına da kod eklenebilir ama functions.php üzerinden şu şekilde de çözebilirsiniz:

function devcrea_disable_file_editors() {
    define('DISALLOW_FILE_EDIT', true);
}
add_action('init', 'devcrea_disable_file_editors');

Not: Bu kod bazen temanın functions.php dosyasında çalışmayabilir çünkü config ayarları daha önce yüklenir. Eğer çalışmazsa, hosting panelinizden wp-config.php dosyasını açıp define('DISALLOW_FILE_EDIT', true); satırını oraya eklemeniz garanti çözümdür.

WordPress Admin Bar (Üst Çubuk) Nasıl Gizlenir?

Siteye giriş yapıldığında en üstte çıkan siyah çubuk (Admin Bar), bazen tasarımın önizlemesini bozabilir veya müşterinin kafasını karıştırabilir. Bunu da sadece yöneticiler dışındaki kullanıcılardan gizleyebilirsiniz:

function devcrea_hide_admin_bar() {
    if (!current_user_can('manage_options')) {
        show_admin_bar(false);
    }
}
add_action('after_setup_theme', 'devcrea_hide_admin_bar');

Kod Yazmak İstemeyenler İçin Alternatifler

Eğer kodlarla uğraşmak size veya projenize uygun gelmiyorsa, bu işi arayüz üzerinden yapabileceğiniz profesyonel eklentiler de mevcut. Özellikle Admin Menu Editor eklentisi, sürükle-bırak yöntemiyle menüleri yeniden sıralamanıza, isimlendirmenize ve gizlemenize olanak tanır.

Ancak unutmayın, her ekstra eklenti sitenizde az da olsa bir yük oluşturur. Eğer yapabiliyorsanız, yukarıdaki kod yöntemi her zaman en temiz ve performanslı seçenektir.

Müşterilerinize teslim ettiğiniz projelerde bu küçük dokunuşlar, sizi sıradan bir web tasarımcısından, işini bilen bir çözüm ortağına dönüştürür. Panel ne kadar sade olursa, eğitim süreci o kadar kısalır ve sitenin ömrü o kadar uzar.