Wordpress Apı Kullanımı – Onur Yazılım Blog
in Genel, Güncel, JAVA, PHP, SCRİPT, wordpress
Bu hafta başında WordPress.com, Jetpack, WooCommerce, Akismet, Gravatar gibi ürünleriyle bildiğimiz Automattic‘in Tumblr‘ı Verizon’dan satın almaya hazırlandığı haberine denk geldim 1. Bilindiği üzere Tumblr bir mikro bloglama servisi ve özellikle bir dönem gençler arasında oldukça popülerdi. Zaman içerisinde yeni alternatiflerin ortaya çıkması ve Tumblr’ın yetişkin içeriklerini kapatmasıyla eski popülerliğini yitirdiği bilinmekteydi. Automattic satın alma sürecinin tamamlanması sonrasında süreç ne gösterir kestirmek güç. Özellikle, Tumblr’ın WordPress ile kıyaslandığında farklı bir deneyim sunduğu aşikar. Gelişmeleri ayrıca takip edeceğim. Diğer yandan, bu haber uzun zamandır WordPress üzerine yazı yazmadığımı da hatırlamama vesile oldu ve içerik bağlamını Headless CMS‘in devamı ve Headless WordPres yazılarının da önceli olarak WordPress API‘ler olarak belirledim.
Kaynak: Innovating With Headless WordPress
Aşağıda, WordPress API kullanımında sıklıkla referansta bulunacağım bazı yazıları listeliyorum. Bu yazının ardından göz atmanızda fayda olacaktır.
Öncelikle altını çizmek istediğim bir konu var. WordPress bize kullanılabilir pek çok API sunmakta ve bunların pek çoğu kullanıcılar tarafından farkında bile olunmadan WordPress tema, eklenti ve içerik yönetim sürecinde önemli görevler sağlamakta. Örneğin, Shortcode API WordPress shortcode kullanımlar için ve Plugin API eklenti ilişkilerinde (actions ve filters) kritik işlevler sunmakta. REST API ise bence WordPress’in sahip olduğu işlevselliği bir üst düzeye taşımak ve uygulama çeşitliliği sağlamak adına parlak bir gelecek vaadediyor. Elbette bu saydıklarım sadece öne çıkan API’ler. Peki, listede daha neler var?
WordPress API’leri 2
Dashboard Widgets API Metadata API Shortcode API
Database API Options API Theme Modification API
HTTP API Plugin API Theme Customization API
REST API Quicktags API Transients API
File Header API Rewrite API Widgets API
Filesystem API Settings API XML-RPC WordPress API
Güncel liste için WordPress APIs sayfasına göz atabilir ve API bağlantılarını tıklayarak kullanım detaylarını görüntüleyebilirsiniz. Gönül ister ki listede yer alan her API için ayrı yazılar yayınlayabileyim. Ancak, maalesef -şimdilik- bu mümkün değil. Bu nedenle, sağladıkları işlevler temelinde karar vererek HTTP API, REST API ve Plugin API ile ilerleyeceğim.
PHP ile HTTP request gerçekleştirmenin pek çok işlevsel yolu bulunmakta. WordPress HTTP API de bu amaçla kullanılabilecek pek çok fonksiyon barındırmakta. Ancak, unutmamak gerekir ki, web barındırma (hosting) sunucularında farklılıklar söz konusu olabilmekte ve hatta bazı sunucular gerekli özelliklerin hiçbirini desteklemedikleri için sorunlar yaşanabilmekte.
HTTP API, her şeyi mümkün olduğunca basit bir şekilde ele alan tek bir API üzerinde standartlaştırma girişimidir ve WordPress 2.7 sürümünden bu yana kullanılabilmektedir. Ancak, asıl işlevselliğine 2.8 sürümüyle sahip olmuştur. Nesne yönelimli (object-oriented) olan API, ayrıca API işlevlerinden faydalanmayı mümkün kılan yardımcı fonksiyonlara (helper functions) da sahiptir.
Uzun zaman boyunca WordPress Codex altında HTTP API ayrı bir bölüm halinde yer almaktaydı3. Ancak, güncel durumda Developer Resources altından fonksiyonlara ayrı ayrı ulaşmak gerekiyor.
Şimdilik yardımcı fonksiyonlara bir liste halinde bakalım.
Yukarıdaki fonksiyonlar bir hata olması durumunda WordPress WP_Error sınıfını döndürürler. Aşağıdaki fonksiyonlar ise cevabın farklı kısımlarını almakla ilgilenirler ve işlem aşamasında WP_Error testi yapar. Bu yardımcı fonksiyonlar API’nin kullanımını oldukça basit hale getirir ve yanıt nesnelerinin (response objects) işlenmesi için tercih edilen yöntemlerdir.
Bir sonraki yazıda HTTP API için ayrıca bir yazı yayınlayacak ve yardımcı fonksiyonlarla örnek işlemler gerçekleştireceğim.
WordPress REST API ile WordPress yapısı kullanılarak pek çok heyecan verici fikir ve ürün ortaya çıkarılabilmekte. Headless CMS bunun bir örneği, diğer yandan Tek Sayfa Uygulamaları (SPA / Single Page Application) da yine seçenekler arasında yer almakta. Ayrıca, WordPress için tamamen yeni bir yönetici deneyimi sağlamak da mümkün.
Son olarak, WordPress REST API, çekirdekteki admin-ajax API yerine daha güçlü bir alternatif olarak hizmet verebilir. AJAX çağrıları REST API kullanarak daha basit bir şekilde gerçekleştirilebilir.
İlerleyen zaman içerisinde WordPress REST API üzerine pek çok yazı ve örnek yayınlayacağım. Şimdilik bu başlığı da burada sonlandıralım. Öncesinde daha detaylı bilgi edinmek isterseniz ilgili WordPress REST API sayfasına göz atabilirsiniz.
Eğer WordPress eklentisi yazma veya var olan bir eklentiyi düzenleme süreçlerine aşina iseniz WordPress Plugin API ile ilgili bir farkındalık oluşturmuşsunuzdur. Çünkü, Plugin API esasında API “Hooks” olarak da ifade edilebilecek bir dizi filter ve action‘dan oluşmakta ve bu sayede eklenti çalışma süreçlerine farklı eklentiler ve/ya tema üzerinden dahil olunabilmekte. Hatta, daha önce yayınladığım WordPress Hooks (Kancalar): Filter ve Action başlıklı yazıda temel bazı açıklamalar düşmüş ve örnek işlemler de paylaşmıştım. Göz atmanızda fayda olacaktır.
WordPress hem monolith yapısı hem de sunduğu diğer özelliklerle popüler bloglama uygulaması ve platformu olma özelliğini daha bir kaç yıl sürdürecek gibi görünmekte. Özellikle REST API sayesinde daha şimdiden Gatsby gibi farklı yapılar içerisinde de yer almaya başlamış durumda. Ben de mümkün olduğunca bu özellikler üzerine yeni fikirler üretmeye ve bunları örneklendirmeye çalışacağım. Ayrıca, ilerleyen zaman içerisinde yayınlanan ilgili yazıları da yine başlıklar halinde bu yazıya dahil edeceğim.