WP Admin İçerik Durum Alanını Düzenlemek

WordPress Eklentisi: WpPostPageManager

Genel olarak yayınladığım yazılar belirli bir gündeme, güncel olarak yaşanılan bir soruna ve/veya üzerinde uzun zamandır çalışırken not ettiğim sorunların sıralamasına dayanıyor.

AA

Belirli bir konu ekseninde seriler halinde yazılar yayınlamaya başlamışken bir proje içerisinde kendini gösteren bir sorun ve aslında o sorunun çözümünün genel olarak fayda sağlayacağını düşündüğümde seriyi bölebiliyorum. Hatta, bazen öyle günler oluyor ki, ardı ardına ortaya çıkan konular seriler içerisindeki yazılar arasına çok uzun aralıklar koymama neden olabiliyor. Üstün körü yazılar yayınlamak yerine araştırma, örneklendirme, konuya dair soruların ve çözümlerin araştırılması derken yüzden fazla bekleyen yazı çok zamandır taslak olarak yayınlanacakları zamanı beklemeye başlıyor.

wppostpagemanager

Bu anlamda sürekli sıralamaları, tarihlendirmeleri planladığım Trello ile entegre bir şekilde notları düşerken basit, ancak üzerine kapsamlı bir şekilde düşünüldüğünde wordpress yönetim panelinde, taslak olarak tutulan yazılara dair birkaç düzenlemeye ihtiyacım olduğuna karar verdim1. Bunlardan ilki, tüm yazıları görüntülediğimde yayınlananlar ile taslak'ların o an aradığım içeriğe ulaşmamı zorlaştırmasına dairdi1. Bu sorunu tüm yazılar'ı görüntülediğimde sadece yayınlanmış olanları öncelikli olarak göstererek çözdüm.

Yazılar ve Sayfaları Kendi İçerisinde Ayrıştırmak

cea_wpAddMenuDrafts içeriğinde yer alan add_posts_page() fonksiyonu ile Yazılar ve Tüm Yazılar başlıkları tıklandığında karşımıza taslaklardan arındırılmış, yayınlanmış yazılar dökülmesini sağladım. Ancak, şöyle bir durum ortaya çıktı. Halihazırda, daha pratik hale getirmek istediğim bu özellik yeterli değildi. Bu özelliğe ek olarak yeni fonksiyonlarla yazılar altına yayınlanmış, planlanmış ve taslak gibi başlıkları ve barındırdıkları bölüme wp_count_posts ile yazı adetlerini de dahil etmeye karar verdim.

function cea_wpAddMenuDrafts() {
  add_posts_page(__('Drafts'), __('Drafts'), 'read', 'edit.php?post_status=draft&post_type=post');
}
add_action('admin_menu', 'cea_wpAddMenuDrafts');
$count_posts = wp_count_posts();
$draft_posts = $count_posts->draft;
$future_posts = $count_posts->future;

Öncelikle Administration Menus2 altında sunulan fonksiyonlarla bu anlamda oldukça hızlı ve etkin bir çözüm oluşturmamı sağladı. add_posts_page()3 ile birlikte add_pages_page()4 ve add_submenu_page()5'i de dahil edip, kullanma ihtimalinizin olduğu costum post types6 özelliğini de kapsayan, kullanışlı bir sonuca ulaşmış oldum.

add_posts_page()

Yazılar altına alt bağlantılar ekleyebilmenize olanak veren fonksiyon $capability ile birleştirilerek kullanıcıların doğrudan kendi içeriklerine ve belirlenen yetkiler üzerinden ulaşabilmesine olanak sağlıyor3.

add_pages_page()

Sayfalar altına alt bağlantılar ekleyebilmenize olanak veren fonksiyon add_posts_page fonksiyonunun sahip olduğu yeteneklere benzer bir şekilde çalışıyor4.

add_submenu_page()

add_posts_page ve add_pages_page fonksiyonlarına ek olarak $parent_slug ile bağlantı ekleyeceğiniz menü alanını belirtmeniz gerekiyor5. $submenu değişkeni ile dökebileceğiniz içerikten referanslar alarak kullanabileceğiniz fonksiyon için örneklerden bazıları şu şekilde;

  1. Dashboard add_submenu_page( 'index.php', ... ); 7
  2. Yazılar add_submenu_page( 'edit.php', ... ); 3
  3. Medyalar add_submenu_page( 'upload.php', ... ); 8
  4. Bağlantılar add_submenu_page( 'link-manager.php', ... ); 9
  5. Sayfalar add_submenu_page( 'edit.php?post_type=page', ... ); 4
  6. Yorumlar add_submenu_page( 'edit-comments.php', ... ); 10
  7. Özel Sayfa Tipleri add_submenu_page( 'edit.php?post_type=your_post_type', ... );
  8. Görünüm add_submenu_page( 'themes.php', ... ); 11
  9. Eklentiler add_submenu_page( 'plugins.php', ... ); 12
  10. Kullanıcılar add_submenu_page( 'users.php', ... ); 13
  11. Araçlar add_submenu_page( 'tools.php', ... ); 14
  12. Ayarlar add_submenu_page( 'options-general.php', ... ); 15

Yukarıda yer alan fonksiyonların detaylı içerikleri için src/wp-admin/includes/plugin.php16 sayfasını inceleyebilirsiniz. Ayrıca, referanslarda da görebileceğiniz gibi add_pages_page ve add_posts_page fonksiyonları yerine add_submenu_page üzerinden de sayfa ve yazı alanlarına menü bağlantıları eklemeniz mümkün.

wpPostPageManager Plugin

İhtiyacınıza uygun olarak paylaştığım kodları ihtiyacınıza göre düzenleyerek pratik bir şekilde kullanabileceğiniz gibi, wordpress eklentisi olarak veya github üzerinden de indirip kullanmaya başlayabilirsiniz.