WordPress Admin Panel’de Menü Gizlemek

YouTube'ta Takip Et →

WordPress, süper özelliklerle gelen güçlü bir içerik yönetim sistemi. Profesyonel olarak müşterilerinize web siteleri hazırlıyorsanız, meraklı bazı müşterilerinizin WordPress özelliklerini karıştırarak, tema dosyaları üzerinde düzenlemeye yapmaya çalışarak sitenin düzgün bir şekilde çalışması için gereken ayarları, kodları bozabilir. Bu tip durumlarla karşılaşmamak için admin panelinde bazı menüleri gizlemeniz gerekebilir.

Admin Panelde Eklenti Düzenleyici / Tema Düzenleyici Devre Dışı Bırakma

WordPress’te admin paneli üzerinden eklenti dosyaları ve tema dosyaları düzenlenebiliyor. Müşteriniz kodlamadan anlamıyorsa ve bu dosyaları düzenlemeye kalkarsa siteniz kullanılamaz hale gelebilir. Bunun için eklenti editörünü ve tema düzenleyicisnii pasifleştirmek gerekir.

functions.php dosyasını açın ve aşağıdaki satırı ekleyin. Bu kod hem görünümün altındaki editörü (tema düzenleyicisi) hem de Eklentiler sayfasındaki Editör’ü devre dışı bırakır.

define( 'DISALLOW_FILE_EDIT', true );

Admin Paneldeki Menüleri / Sayfaları Gizleme

Web sitesi hazırladığınız müşterilerin çoğu WordPress’i çok basit bir şekilde kullanır. Mesela bir blog sayfasıysa sadece yazı ekler, bu onun için yeterlidir. Custom Post Type ile bir içerik eklemesi gerekiyorsa diğer sayfaları görmesi gereksizdir. Örneğin AYarlar sayfası ile hiç işi olmayabilir. İhtiyacı olmayan sayfaların gösterilmemesi hem müşteriye çok daha sadece bir panel sunar hem de ayarları kurcalamadığı için sitenin doğru bir şekilde çalışmasına engel olamaz.

Admin panelden bu sayfaları gizlemek için functions.php’ye aşağıdaki kodları ekleyin. Her satır admin panelinin sol tarafındaki menüdeki bir seçeneği ifade ediyor.

function remove_menus() {
  remove_menu_page( 'index.php' );                  //Dashboard
  remove_menu_page( 'edit.php' );                   //Posts
  remove_menu_page( 'upload.php' );                 //Media
  remove_menu_page( 'edit.php?post_type=page' );    //Pages
  remove_menu_page( 'edit-comments.php' );          //Comments
  remove_menu_page( 'themes.php' );                 //Appearance
  remove_menu_page( 'plugins.php' );                //Plugins
  remove_menu_page( 'users.php' );                  //Users
  remove_menu_page( 'tools.php' );                  //Tools
  remove_menu_page( 'options-general.php' );        //Settings
}
add_action( 'admin_menu', 'remove_menus' );

Şunu da unutmamak lazım, bu sayfaların gizli olması girilemeyeceği anlamına gelmiyor. Sadece sol taraftaki menüden gizleniyor. Direkt URL ile bu sayfalara girmek mümkün.

Eğer eklentilerle oluşan bir menünüz varsa o menüyü kaldırmak için kullanılması gereken ismin araştırılması gerekiyor. Çünkü her eklentideki bu isim farklı olabiliyor. Örneğin Contact Form 7 eklentisi kullanıyorsanız aşağıdaki satırı eklemeniz gerekiyor.

remove_menu_page( 'wpcf7' );   //Contact Form

WordPress’te kullanıcı eklerken rolleri de belirtiyoruz. Müşterinize eğer bir rol tanımlarsanız bu rollare sahip kullanıcılara da admin panelde, sol taraftaki menü seçeneklerini gizleme imkanımız oluyor. Yukarıdaki kodu aşağıdaki kod ile güncelleyebiliriz.

if(current_user_can( 'editor' )){
   add_action( 'admin_menu', 'remove_menus' );
}