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.
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.
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;
- Dashboard
add_submenu_page( 'index.php', ... );
7 - Yazılar
add_submenu_page( 'edit.php', ... );
3 - Medyalar
add_submenu_page( 'upload.php', ... );
8 - Bağlantılar
add_submenu_page( 'link-manager.php', ... );
9 - Sayfalar
add_submenu_page( 'edit.php?post_type=page', ... );
4 - Yorumlar
add_submenu_page( 'edit-comments.php', ... );
10 - Özel Sayfa Tipleri
add_submenu_page( 'edit.php?post_type=your_post_type', ... );
- Görünüm
add_submenu_page( 'themes.php', ... );
11 - Eklentiler
add_submenu_page( 'plugins.php', ... );
12 - Kullanıcılar
add_submenu_page( 'users.php', ... );
13 - Araçlar
add_submenu_page( 'tools.php', ... );
14 - Ayarlar
add_submenu_page( 'options-general.php', ... );
15
Yukarıda yer alan fonksiyonların detaylı içerikleri için src/wp-admin/includes/plugin.php
16 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.
- Wordpress Yönetim Ekranları (Administration Screens), WordPress Codex ↩ ↩
- add_posts_page(). WordPress Codex ↩ ↩ ↩
- add_pages_page(). WordPress Codex ↩ ↩ ↩
- Custom Post Types. WordPress Codex ↩
- add_dashboard_page(). WordPress Codex ↩
- add_media_page(). WordPress Codex ↩
- add_links_page(). WordPress Codex ↩
- add_comments_page(). WordPress Codex ↩
- add_theme_page(). WordPress Codex ↩
- add_plugins_page(). WordPress Codex ↩
- add_users_page(). WordPress Codex ↩
- add_management_page(). WordPress Codex ↩
- add_options_page(). WordPress Codex ↩
- .../src/wp-admin/includes/plugin.php ↩