Wordpress

WordPress API Kullanımları

Güncelleme:
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 ...
GÖRSEL

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.

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 APIMetadata APIShortcode API
Database APIOptions APITheme Modification API
HTTP APIPlugin APITheme Customization API
REST APIQuicktags APITransients API
File Header APIRewrite APIWidgets API
Filesystem APISettings APIXML-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.

WordPress HTTP API

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.

  1. wp_remote_get() – Belirtilen URL aracılığıyla GET HTTP metodunu uygular.
  2. wp_remote_post() – Belirtilen URL aracılığıyla POST HTTP metodunu uygular.
  3. wp_remote_head() – Belirtilen URL aracılığıyla HEAD HTTP metodunu uygular.
  4. wp_remote_request() – Belirtilen URL aracılığıyla ön tanımlı olarak GET başta olmak üzere diğer HTTP metodlarının da uygulanabilmesini sağlar.

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.

  1. wp_remote_retrieve_body() – Yanıt içerisinden sadece body’i alır.
  2. wp_remote_retrieve_header() – Yanıt içerisinden sadece ilgili HTTP header parçasını alır.
  3. wp_remote_retrieve_headers() – İşlem içerisindeki tüm HTTP header’i bir array olarak verir.
  4. wp_remote_retrieve_response_code() – HTTP yanıt değerini verir. Bu genellikle 200 olmalıdır. Ancak, olası başarısızlık durumlarında 4xx veya 3xx gibi değerler de dönebilir.
  5. wp_remote_retrieve_response_message() – Response code temel alarak response message döndürür.

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.

İlgili Yazılar

  1. WordPress HTTP API

WordPress REST API

WordPress REST API, geliştiricilerin uzak sitelerle etkileşime geçerek JSON (JavaScript Object Notation) nesneleri alıp gönderebilmelerini sağlar. WordPress veri türleri için kullanılabilecek pek çok API endpoint barındırmaktadır. WordPress REST API sayesinde geliştiriciler WordPress içeriklerini istemci tarafında JavaScript’ten veya dış uygulamalardan ve/ya PHP dışındaki dillerden edinebilir ve ilgili alanları güncelleyebilirler.

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.

İlgili Yazılar

  1. REST ve RESTful
  2. REST ve SOAP API Nedir?

WordPress Plugin API

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.

İlgili Yazılar

  1. WordPress Hooks (Kancalar): Filter ve Action

Sonuç Olarak

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.

Kaynakça

  1. Verizon to Sell Tumblr to WordPress.com Owner, 12 Ağustos 2019
  2. WordPress APIs
  3. WordPress HTTP API
Ceyhun Enki Aksan

Kullanıcı Davranışları Analizi (User Behavior Analysis) ve Kullanıcı Deneyim Tasarımı (UX Design) üzerine çalışmalar yürütmekte, bu süreçte edindiğim teknik ve pratik bilgileri fayda sağlamak motivasyonuyla (afaik / as far as i know) paylaşmaktayım.

HABERDAR OL

Yeni eklenen projeler, eğitimler, içerikler ve yayınlanan videolar e-posta adresine gelsin.