WordPress, güçlü bir içerik yönetim sistemi ve sunduğu esneklik sayesinde web sitesi geliştirenler için oldukça kullanışlı. Ancak, müşterilere teslim ettiğiniz sitelerde, onların admin panelini kurcalayıp bir şeyleri bozmasını istemeyebilirsiniz. Özellikle teknik bilgisi olmayan kişiler, yanlışlıkla önemli ayarları değiştirebilir veya tema dosyalarını düzenleyerek sitenin çökmesine neden olabilir.

Bu yüzden, WordPress admin panelindeki bazı menüleri gizlemek veya devre dışı bırakmak mantıklı bir çözümdür. Bu yazıda, functions.php dosyası kullanarak admin panelinde gereksiz menüleri nasıl gizleyebileceğinizi adım adım göstereceğim.

WordPress’te Menüler Neden Gizlenir?

WordPress’te admin paneline giriş yaptığınızda Görünüm > Tema Düzenleyici veya Eklentiler > Eklenti Düzenleyici gibi seçenekleri görebilirsiniz.

Bu bölümler, direkt olarak tema ve eklenti kodlarını düzenlemeye izin verir. Eğer müşteri veya bir başka yönetici yanlışlıkla bu bölümleri düzenlerse, site tamamen kullanılamaz hale gelebilir.

Admin panelindeki bu bölümleri gizlemek, müşterinin yanlışlıkla siteyi bozmasını önler., admin panelini daha sade ve kullanıcı dostu hale getirir, gereksiz bölümleri kaldırarak müşterinin sadece ihtiyacı olan alanlara odaklanmasını sağlar.

Şimdi admin panelinde belirli menüleri nasıl gizleyeceğimize bakalım.

Tema ve Eklenti Düzenleyiciyi Devre Dışı Bırakma

Admin panelinde tema ve eklenti düzenleyicisini devre dışı bırakmak için functions.php dosyasına bir kod ekleyerek bu işlemi kolayca yapabiliriz.

Eğer wp-config.php dosyasına müdahale etmek istemiyorsanız, aşağıdaki kodu functions.php dosyanıza ekleyebilirsiniz:

function remove_editor_menu() {
    remove_submenu_page('themes.php', 'theme-editor.php');
    remove_submenu_page('plugins.php', 'plugin-editor.php');
}
add_action('admin_menu', 'remove_editor_menu', 999);

Bu kod, admin panelindeki tema ve eklenti düzenleyicilerini kaldırır.

Admin Panelde Belirli Menüleri Gizleme

Bazı müşteriler için WordPress panelini daha sade hale getirmek isteyebilirsiniz. Örneğin, sadece Yazılar bölümünü bırakıp diğer menüleri kaldırabilirsiniz.

Bunu yapmak için functions.php dosyanıza şu kodları ekleyebilirsiniz:

function remove_admin_menus() {
    remove_menu_page('edit.php'); // Yazılar
    remove_menu_page('upload.php'); // Ortam
    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', 'remove_admin_menus');

Bu kodu ekledikten sonra admin panelinde bu sayfalar gizlenecek.

Belirli Kullanıcılara Göre Menü Gizleme

Tüm menüleri değil de, sadece belirli kullanıcı rollerine göre gizlemek istiyorsanız, aşağıdaki kodu kullanabilirsiniz:

function remove_menus_for_non_admins() {
    if (!current_user_can('administrator')) {
        remove_menu_page('edit.php'); // Yazılar
        remove_menu_page('upload.php'); // Ortam
        remove_menu_page('edit-comments.php'); // Yorumlar
    }
}
add_action('admin_menu', 'remove_menus_for_non_admins');

Bu kod ile sadece admin olmayan kullanıcılar için belirli menüler gizlenmiş olacak.

Örnek: Eğer müşterinizin sadece blog yazısı ekleyebilmesini istiyorsanız, sadece Yazılar menüsünü bırakabilirsiniz.

Custom Post Type (Özel İçerik Türü) Menülerini Gizleme

Eğer özel içerik türleri (Custom Post Type) kullanıyorsanız ve bunları da admin panelinde gizlemek istiyorsanız, aşağıdaki kodu ekleyebilirsiniz:

function remove_custom_post_type_menu() {
    remove_menu_page('edit.php?post_type=portfolio'); // Portfolio'yu gizle
}
add_action('admin_menu', 'remove_custom_post_type_menu');

Bu kod, Portfolio adlı özel içerik türünü gizler. Kendi özel içerik türünüzü gizlemek için portfolio yerine kendi post type adınızı yazabilirsiniz.

Belirli Eklentilerin Menüsünü Gizleme

Bazı eklentiler admin paneline yeni menüler ekleyebilir. Örneğin, Contact Form 7’nin “İletişim” sekmesini gizlemek istiyorsanız:

function remove_contact_form7_menu() {
    remove_menu_page('wpcf7');
}
add_action('admin_menu', 'remove_contact_form7_menu');

Benzer şekilde, diğer eklentilerin menülerini gizlemek için eklenti menü slug’larını bulup aynı şekilde kaldırabilirsiniz.

Sonuç

WordPress admin panelinde gereksiz menüleri gizlemek, müşteri sitelerini daha güvenli ve sade hale getirmek için harika bir yöntem. Böylece, müşterileriniz sadece ihtiyacı olan bölümleri görebilir ve yanlışlıkla sitenin çalışmasını bozacak işlemler yapamaz.