Admin Panel Menülerini Devre Dışı Bırakma

WordPress süper özelliklerle gelen güçlü bir içerik yönetim sistemi. Profesyonel olarak müşterilerinize web siteleri hazırlıyorsanız, bazı meraklı müşterileriniz WordPress özelliklerini karıştırarak, tema dosyaları üzerinde düzenleme yapmaya çalışarak, sitenin düzgün bir şekilde çalışması için gereken ayarları veya kodları bozabilir, değiştirebilir. Bu tip durumlarla karşılaşmamak için admin panelinde bazı menüleri gizlemeniz gerekir. Ben de şimdi size admin panelindeki bu menüleri, daha doğrusu müşterinin işine yaramayacak, görmesine gerek olmayan menüleri, nasıl gizleyebileceğinizi göstermeye çalışacağım.

WordPress Menüleri Neden Gizlenir?

WordPress admin paneli üzerinde standart olarak tema dosyaları ve eklenti dosyaları düzenlenebiliyor. WordPress’in admin paneline paneline giriş yaptığımızda, görünümün altında tema düzenleyicisi sayfasına tıklayarak ve bu uyarıda Anladım butonuna tıklayarak tema dosyanız üzerinde düzenleme yapma imkanı tanıyor size WordPress. Dilerseniz buradan diğer tema dosyaları üzerinde de düzenleme yapabiliyorsunuz. Yani bir şekilde tema dosyalarını, tema kodlarını kurcalayabiliyorsunuz. Bu aynı zamanda admin panele giriş hakkı olan müşterilerin de tema dosyaları üzerinde düzenleme yapabildiği anlamına geliyor. Yani bilinçli veya bilinçsiz bir şekilde bu kodlarla oynayıp, tema dosyaları üzerinde değişiklik yapma hakkına sahipler. Aynı şekilde, eklentilerin altındaki eklenti düzenleyici seçeneğine gelerek de, yine Anladım butonuna tıklayarak, bu sefer eklentiler üzerinde düzenleme yapma imkanımız var.

Şimdi biz bu admin panelini giriş bilgileriyle müşteri gönderdiğimizde, müşteri bu kısımlarda düzenleme yapabilir, müdahale edebilir. Ama biz bunun bu şekilde olmasını istemiyoruz. Müşteriler herhangi bir düzenleme yapabilsin istemiyoruz. Bunun önüne geçebiliyoruz. Yani şöyle geçebiliyoruz, biz buradan eklenti düzenleyiciyi ve Görünüm’ün altındaki tema düzenleyici sekmelerini, sayfalarını buradan gizleyebiliyoruz.

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

Bunu yapabilmemiz için tema dosyası içerisindeki functions.php’ye giriyorum. Sayfanın uygun bir yerine bu kodu yazıyorum.

define( 'DISALLOW_FILE_EDIT', true );

Bu kod admin paneli üzerinden dosya düzenlemeyi imkansız hale getiriyor. Bu dosyayı kaydediyorum, tekrar admin paneline dönüyorum. Tekrar girmiş gibi yapalım. Görünüm’ün altında, gördüğünüz gibi, tema düzenleyicisi yok oldu, eklentilerin altında da eklenti düzenleyicisi yok oldu. Bu durumda, herhangi bir şekilde bu admin paneli üzerinden düzenleme yapma kısıtlaması geldiğini söyleyebilirim. Bunun şöyle bir önemi var, müşterileriniz kodlardan anlamıyorsa ve bu kodları düzenlemeye kalkarsa ya da bildiğini düşündüğü başka birinden bunu rica ederse, bu site kullanılamaz hale gelebilir. Amacımız bunun önüne geçebilmek. Tabii ki sadece tema düzenleyicisi yeterli değil. Burada eklentiler kullanıyoruz. Bazılarımız özel temalar kullanıyor. Burada ayarlar var, sitenin içeriğini bozmaya yönelik. Müşterilerinizin sadece blog yazısı girmek için buraya, bu sayfaya geldiğini düşünün.

Admin Paneldeki Menüleri / Sayfaları Gizleme

Web sitesi hazırladığınız müşterilerin çoğu WordPress’i çok basit bir şekilde kullanmak ister açıkçası. Blog yazanlar sadece yazı eklemek için buraya girdikleri için. onlara sadece Yazılar sekmesinin görünmesi yeterli. Bu sayfaların, diğer tüm sayfaların görülmesinin, onlar için gereksiz olduğunu söyleyebilirim.

Diğer tüm ihtiyacı olmayan sayfaların gösterilmemesi, hem müşteriye çok daha sade bir panel sunar hem de ayarları kurcalamadığı için sitenin doğru bir şekilde çalışmasının önüne geçmemiş olur. Admin paneldeki bu sekmeleri, bu sayfaları gizlemek için de yine functions.php‘ye ihtiyacımız var. O sayfayı açalım tekrar. Bu sayfada tema düzenleyicisi kısmının altına yazabiliriz. Herhangi başka bir yere de yazabiliriz. Bunun için yazmamız gereken fonksiyon şu, öncelikle bir fonksiyon atayalım ve fonksiyona bir isim verelim, herhangi bir isim olabilir bu. Remove Menus diyelim, sonra parantez açıp kapatalım.

Şimdi tekrar köşeli parantez açıp bu araya gizlemek istediğimiz sayfaları yazacağız. Daha sonra, şu alt satıra da, biliyorsunuz functions.php’de bir fonksiyonu çalıştırmak için, buna bir Add Action eklememiz gerekiyor, Add Action yazıyorum. Bu oluşturduğumuz fonksiyon nerede çalışacak, admin menüde çalışacak. Bu standarttır. Ve buraya da az önce yazdığımız Remove Menu ismini yazıyorum. Yani fonksiyonun ismini yazıyorum. Noktalı virgülle bu satırı da sonlandırıyorum fonksiyonumuz bu.

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' );

Admin Paneldeki Yorumlar ve Sayfalar Alanlarını Devre Dışı Bırakma

Şimdi gizleyecek satırları ekleyelim. Öncelikle buradaki yorumlar kısmını ve sayfalar kısmını gizleyelim sonra sırasıyla diğerlerini de yaparız. Fonksiyon içerisinde kullanmamız gereken kelimeler şunlar, Remove Menu Page parantezimizi açıyoruz ve tırnak içerisine sayfalardan bahsetmiştik. Önce sayfa var edit.php post type page yazıyorum ve en sonuna da noktalı virgül koyuyorum. Bu satırı çoğaltayım. Çünkü altına, bu sefer yorumları gizlememiz gerekecek. Bunlar standarttır yine, sayfaları gizleyecek. Bu da yorumları gizleyecek diye düşünüyorum. Kaydediyorum ve tekrar admin paneline geçip Refresh yapıyorum. Bakın buradaki sayfalar da yorumlar da gizlendi. Temel mantığımız bu.

Yalnız şunu da unutmamak lazım bu sayfaların gizli olması girilemeyeceği anlamına gelmiyor. Sadece sol taraftaki menüden gizleniyor. Zaten bu sayfaların URL’leri bilinmiyorsa, bu işlerden anlamayan müşteriler bu sayfalara giremeyecektir. Ama direkt olarak URL ile bu sayfalara girmenin mümkün olduğunu da unutmayın. Şimdi yazılar kısmına geliyorum başlangıç ve Yazılar’ı da gizleyelim Yani anladığımız şu ki Remove Menu Page diyerek bizim temel gizleme fonksiyonumuz temel gizleme satırımız bu.

Dashboard / Index Sayfasını Gizleme

Burada yazdığımız her bir satır admin Paneldeki her bir seçeneği ifade ediyor Index.php/dashboard yani admin paneline girdiğimizde görünen kısım. Bunu gizliyoruz ve altına da blog yazılarını gizleyeceğim. Blog yazılarını gizlemek için de edit.php’yi kullanıyorum. Şimdi kaydedip tekrar bakalım.

Gördüğünüz gibi başlangıç kısmı yok ve yazılar kısmı da yok. Ben yazılar kısmının olmasını istiyorum. Çünkü müşterim yazılar sekmesi aracılığıyla içeriklerini giriyor. Onun için bu yazılar satırının başına iki tane slaş koyuyorum ki bu kısım bir yorum olarak görünsün. Bu kısım dikkate alınmasın, tekrar kaydedip baktığımda yazıların burada göründüğünü görebiliyorum.

WP Admin Paneldeki Ortam, Görünüm, Eklentiler, Kullanıcılar, Araçlar ve Ayarlar Menülerini Gizleme

Diğerlerini de sırasıyla iptal edelim. Önce WordPress’in varsayılan seçeneklerini gizleyeceğiz Portfolio bizim oluşturduğumuz bir custom post type Bunun nasıl gizleneceğini göstereceğim. Eklediğimiz eklentilerin de nasıl gizleneceğini göstereceğim. İletişim de Contact Form 7 adlı eklentinin buraya getirdiği bir seçenek. Onlara da geleceğiz. ACF’nin özel alanlar sekmesi de aynı şekilde. Yazılardan sonra ortam var. Ortamı gizleyelim. Bunun için upload.php‘yi kullanıyoruz. Aşağı iniyorum, devam ediyorum. Görünüm kısmını,, sol taraftaki Görünüm kısmını, Eklentileri, Kullanıcıları, Araçları ve Ayarları gizleyelim şimdi. Görünümü gizlemek için themes.php Eklentileri gizlemek için plugins.php, Kullanıcıları gizlemek için de users.php, Araçları ve Ayarları gizlemek için de sırasıyla tools.php, options-general.php satırlarını yazıyoruz. Kaydedip bakalım.

Contact Form 7 Eklenti Menüsünü Gizleme

Gördüğünüz gibi WordPress’in standart seçeneklerinin tamamı yok oldu. Yazıları müşteri için biz kendimiz bırakmıştık, diğerlerine de şimdi geleceğiz. İletişim’in üzerine geliyorum, bunların standartları yok. Onun için incelememiz gerekiyor. iletişime geldiğinizde, adres çubuğunda şöyle bir kelime göreceksiniz. Bu kelimeyi kullanacağız. Bu kelimeye Kopyala diyorum. Ve bu sefer aralığa kopyaladığım o kelimeyi yazıyorum. Bu Contact Form 7’yi gizlemek için kullanabileceğim kelime. Bunu kaydediyorum. Ve tekrar baktığımda, o sayfanın burada olmadığını görüyorum.

remove_menu_page( 'wpcf7' );   //Contact Form

Admin Panelde Özel Alanları Gizleme

Şimdi özel alanlara gelelim. Özel alanların kelimesi de şu, önce bunu deneyeceğim. Bakalım çözüm olacak mı? Kaydediyorum ve Refresh yapıyorum. Çözüm olmadı, çünkü bizim bu özel alanlarda yapmamız gereken şey edit.php ile beraber bunu kaydetmek. Hatırlarsanız burada da edit.php’nin post type’ı page olanları gizlemesi gerektiğini söylemiştik. Burada da yapmamız gereken şey benzer, edit.php post type bu sefer. ACF Field grubu gizlememiz gerekiyor. Control + S yapıyorum ve bu sefer sayfaya baktığımda özel alanların da buradan yok olduğunu görebiliyorum. Bu iki yöntemi uygulayarak sizin elinizde olmayan, buraya eklenen seçenekleri gizleyebilirsiniz.

Custom Post Type Menülerini Devre Dışı Bırakma

Şimdi de bizim oluşturduğumuz Custom post type’ları nasıl gizleyebileceğimizi göstereyim. Bunun üzerine tıklıyorum tekrar. Tekrar URL yapısına bakıyorum. URL yapısında yine aşina olduğumuz edit.php’yi görüyorum. Bunu böyle komple kopyalıyorum, edit.php kısmından itibaren ve yeni bir satıra bunu yazıyorum. Control + S ile kaydediyorum. Refresh yapıyorum ve kendi oluşturduğum custom post type’ın da sol taraftan gizlendiğini görüyorum. costom post typle’ların gizleme işlemi de bu şekilde.

Kullanıcı Rollerine Göre Menüleri Devre Dışı Bırakma

Göstermek istediğim ekstra bir şey daha var. Kullanıcılara yönelik yapabileceğimiz değişiklikler. Yani ben admin olabilirim ve tüm seçenekleri, soldaki tüm seçenekleri görebilirim. Ama bir editöre, bu soldaki tüm seçenekleri göstermek istemiyorum diyelim. Ve aynı zamanda, müşteriyi bir editör olarak atadıysak, müşteriye sadece yazıların görünmesini istiyor olabilirim. Kullanıcının rollerine bağlı olarak bunları ayarlayabiliyoruz. Mesela ben yöneticiyim, yani neyim, administrator’ım. Hemen functions.php’ye gelelim, Add Action kısmına bir ekleme yapmamız gerekecek.

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

Yani şu anki kullanıcı neyse onu kontrol edecek, ona göre bu fonksiyonları uygulayacak. Hemen kodumu Add Action’ın üzerine yazıyorum. If current user can, tekrar bir parantez açıyorum, mesela editör ise diyelim, köşeli parantez açıyorum, köşeli parantezi aşağıda kapatıyorum. Burada dediği şu, eğer kullanıcı, giriş yapan kullanıcı editör ise, tüm bu düzenlemeleri ona uygula. Control+S yapıp bakıyorum.

Ben editör değilim, administrator olarak girdim. Administrator olduğum için soldaki tüm seçenekleri görüyorum. Ama ben bunu administrator’lara özel uygulanmasını isteseydim, administrator’lara göre yani yöneticilere göre uygulanmasını isteseydim, o zaman buraya editör yerine, administrator yazacaktım ve kaydedip sayfayı yenilendiğimde, administrator olduğum için şuradaki tüm uygulamalar, tüm satırlar bana uygulanmış oldu. Bu şekilde müşterilerinize ya da diğer kullanıcılara, belirlediğiniz roller üzerinden gizlemeleri, bu sekme gizlemelerin, sayfa gizlemelerini yapabilmeniz mümkün oluyor. Bu da admin paneline giriş yapan bir kullanıcının, kullanabileceğinden fazla seçeneği görmemesini sağlıyor. Bu da WordPress ile web sitesi yapanların işine yarayacağını düşündüğüm bir özellik.

Popular Eğitimler

WordPress Category Yazısı Nasıl Kaldırılır?

Category yazısı URL’ler SEO açısından da önemli olduğundan WordPress kurulumlarında bu yazıyı…

Spam Yorumları Otomatik Engelleme: WordPress Akismet Anti Spam

WordPress’i özellikle blog amaçlı kullandığımızda yorumlara açık olan sayfalara sürekli olarak otomatik…

Yorum Formundan Web Adresi Alanını Kaldırma

WordPress bir içeriğe şahsi fikri beyan etmekten çok, yorum formlarına eklenen web…

WordPress Admin Paneli Nedir ve Nasıl Kullanılır? (Detaylı Anlatım)

WordPress’i kurduktan sonra sayfaları yönetebilmek için admin paneli dediğimiz yönetim panelinin de…

WP Bootstrap NavWalker ile Temanıza Açılır Responsive Menü Eklemek

Ziyaretçilerin sayfanızda gezinmesini en çok kolaylaştıran bölüm şüphesiz ki navigasyon alanı. WordPress’te…

Admin Panel Menülerini Devre Dışı Bırakma

WordPress süper özelliklerle gelen güçlü bir içerik yönetim sistemi. Profesyonel olarak müşterilerinize…