WordPress varsayılan olarak içerik ekleme sayfalarına metabox’lar ekler. Kategori, Etiketler, Öne çıkarılmış görsel vs… bunların hepsi metabox’tur ve bazen bu metabox’lar dan kurtulmak isteyebiliriz.
Bu gibi durumlarda kullanacağımız fonksiyon,
remove_meta_box($id, $page, $context );
Gördüğümüz üzere 3 adet parametre alıyor;
$id = kaldırmak istediğimiz metabox’un id’si (metabox oluştururken kullanılan id değeri)
$page= metabox’un gösterildiği sayfa (örn: post,page)
$context= metabox’un yayınlandığı alan (örn: normal, side)
Metabox’ları Kaldırmak
add_action( 'add_meta_boxes', 'wpn_metabox_kaldirmaca' ); function wpn_metabox_kaldirmaca() { if( ! current_user_can('manage_options') ) { remove_meta_box( 'commentsdiv', 'post', 'normal' ); remove_meta_box( 'revisionsdiv', 'post', 'normal' ); remove_meta_box( 'authordiv', 'post', 'normal' ); remove_meta_box( 'slugdiv', 'post', 'normal' ); remove_meta_box( 'postexcerpt', 'post', 'normal' ); remove_meta_box( 'formatdiv', 'post', 'normal' ); remove_meta_box( 'trackbacksdiv', 'post', 'normal' ); remove_meta_box( 'postcustom', 'post', 'normal' ); remove_meta_box( 'commentstatusdiv', 'post', 'normal' ); remove_meta_box( 'tagsdiv-post_tag', 'post', 'side' ); remove_meta_box( 'categorydiv', 'post', 'side' ); remove_meta_box( 'postimagediv', 'post', 'side' ); remove_meta_box( 'pageparentdiv', 'page', 'side' ); } }
Örneğin yukarıda ki şekilde yönetici olmayan kullanıcılar için, ‘yayınla’ metabox’u hariç hepsini kaldırdık.
Varsayılan Metabox’lar
WordPress’le beraber default olarak gelen metabox’lara bakalım şimdide. (bunları örnekte ki gibi kaldırabilirsiniz)
[box type=”info”]custom post type için düzenleme yapacaksanız $page parametresine dikkat etmeyi unutmayın[/box]
- submitdiv : “Yayınla” kutusu
- commentsdiv: “Yorumlar” ı görüntülediğiniz metabox
- trackbacksdiv: Geri bildirim ayarlarını seçebildiğimiz inputları içeren metabox
- commentstatusdiv: Yazı için yorumların açık/kapalı olduğunu belirlediğimiz metabox
- revisionsdiv: Adından da anlaşıldığı gibi post revizyonları
- authordiv: “Yazar” seçmemizi sağlayan alan
- postexcerpt: Yazıya özel olarak özet girmek için eklenen textarea
- formatdiv: İçeriğin formatını seçtiğimiz alan
- pageparentdiv: Üst sayfa seçmemizi sağlayan box
- postimagediv: Öne çıkarılmış resim’i seçtiğimiz box
- slugdiv: Yazı kısa adını girebildiğimiz input
- tagsdiv-{$taxonomy}: taxonomy’e göre hiyerarşik olmayan bilgi girdiğimiz alan. Örneğin yazı etiketleri için ‘tagsdiv-post_tag’ şeklinde kullanılır.
- {$taxonomy}div: taxonomy’e göre hiyerarşik olarak bilgi girdiğimiz alan. Örneğin “kategoriler” alanı için ‘categorydiv’ dir.
WordPress’in artık platform olarak kullanılmaya başladığı günümüzde, sitenize aykırı düşen metabox alanlarını kaldırmak gerekebilir, yada içerik ekleme sayfasını basit hale getirmek size artı sağlayabilir.
Tarık ÇAYIR der ki
Tam da buna benzer bir yazı yazacaktım senin yazdığını hatırladım 🙁
Nevzat der ki
All in seo pack için metabox id’sini bir türlü bulamadım bu tür bir kaç eklenti daha var bunların id’sini nasıl bulabilirim acaba?
Mustafa Uysal der ki
Ilgili metabox’u inspect element (ogeyi denetle) ile sectikten sonra, postbox class’ina sahip div oluyor id’si.
(eklentinin kaynak kodunu inceleyerek metabox register ettigi yerden de bulabilirsiniz, ornegin: https://github.com/semperfiwebdesign/all-in-one-seo-pack/blob/2d97c11d2f685513035cf5fb1303c799d1a70cf1/aioseop_class.php#L4779 gibi)