WordPress REST API, WordPress’in içerik, kullanıcı, yorum ve ayar verilerine HTTP üzerinden erişmenizi sağlayan resmi JSON arayüzüdür. Kısacası, tarayıcıdan girdiğiniz yönetim panelinin programatik karşılığıdır. Bir yazı oluşturmak, bir kullanıcıyı güncellemek ya da bir eklenti ayarını değiştirmek için artık wp-admin’e girmenize gerek yoktur; standart bir HTTP isteği aynı işi yapar.
Bu API, WordPress’i klasik bir blog yazılımından veri tabanlı bir içerik platformuna dönüştürür. Mobil uygulamalar, headless (ön yüzü ayrılmış) siteler, otomasyon betikleri, dış sistemlerle veri akışı ve AI ajanları — hepsi aynı uç nokta seti üzerinden çalışır. Bu rehberde REST API’nin tam olarak ne yaptığını, nasıl çalıştığını, gerçek projelerde nasıl kullanıldığını ve güvenlik için hangi adımların atılması gerektiğini bulacaksınız.
REST API Nedir?
REST (Representational State Transfer), kaynaklara HTTP metodlarıyla erişilen bir web servis mimarisidir. WordPress, /wp-json/ kök yolunda çalışan ve wp/v2 ad alanını kullanan bir REST uç noktası seti sunar. Her uç nokta bir kaynağı temsil eder: /wp/v2/posts yazıları, /wp/v2/users kullanıcıları, /wp/v2/media medya dosyalarını temsil eder.
Bir yazının başlığını, içeriğini ve meta verilerini GET ile çekebilir, yeni bir yazı oluşturmak için POST gönderebilir, var olanı güncellemek için PUT, silmek için DELETE kullanabilirsiniz. Tüm veri alışverişi JSON formatındadır; yani WordPress artık sadece PHP template’leriyle değil, diledığiniz herhangi bir HTTP konuşabilen istemciyle çalışır.
WordPress REST API Nasıl Çalışır?
REST API, WordPress çekirdeğine 4.4 sürümünde eklendi ve 4.7 ile birlikte varsayılan olarak etkinleştirildi. Sitenizde şu anda https://siteadiniz.com/wp-json/ yolunu ziyaret ederseniz, kayıtlı tüm uç noktaların, ad alanlarının ve desteklenen metodların listesini içeren bir JSON belgesi görürsünüz.
Tipik bir GET isteği kimlik doğrulaması gerektirmez. Aşağıdaki curl komutu son 5 yazıyı listeler:
curl https://siteadiniz.com/wp-json/wp/v2/posts?per_page=5
Dönen JSON dizisinde her yazı için id, title.rendered, content.rendered, slug, date, status gibi alanlar yer alır. Yazı oluşturmak, güncellemek veya silmek istediğinizde ise kimlik doğrulaması zorunludur; bu noktada Application Password, OAuth veya Cookie tabanlı yöntemlerden biri devreye girer.
Ne İşe Yarar? 5 Gerçek Kullanım Senaryosu
REST API’nin değeri teoride değil pratikte ortaya çıkar. Aşağıdaki senaryolar, gerçek projelerden derlenmiştir ve her biri tek başına bir iş problemini çözer.
1. Headless (Ön Yüzü Ayrılmış) Mimari
WordPress’i saf bir içerik veri tabanı olarak kullanır, ön yüzü Next.js, Nuxt veya React ile yeniden inşa edebilirsiniz. Editörler yine wp-admin’den içerik girer; ziyaretçiler ise statik, hızlı ve modern bir ön yüzden okur. İçerik ekibi tanıdık paneli kullanmaya devam ederken geliştirici tarafı tamamen özgürleşir.
2. Mobil Uygulama Backend’i
React Native, Flutter veya native iOS/Android uygulamanız, WordPress’i içerik kaynağı olarak kullanabilir. /wp/v2/posts, /wp/v2/categories, /wp/v2/media uç noktaları tipik bir haber, blog veya kurumsal uygulamanın ihtiyaç duyduğu tüm veriyi sağlar. Üstelik özel alanlar (custom fields) meta alanı üzerinden taşınabilir.
3. İçerik Otomasyonu
Toplu içerik import/export, fiyat/stok senkronizasyonu, haber akışlarından otomatik taslak oluşturma, e-ticaret ürünlerinin WordPress’e senkronlanması — bunların hepsi REST API ile birkaç satır kodla yapılır. Manuel kopyala-yapıştır ortadan kalkar; veri akışı hatasız ve tekrarlanabilir hale gelir.
4. AI Ajanları ve Chatbot Entegrasyonu
Bir AI ajanı, kullanıcı adına yeni yazı oluşturabilir, yorumları yanıtlayabilir, ürün açıklaması yazabilir ya da eski içerikleri güncelleyebilir. Bu tür ajanlar için REST API en doğal arayüzdür: HTTP üzerinden JSON alışverişi yapar, OAuth benzeri token tabanlı kimlik doğrulama ile çalışır, standart hata kodları (401, 403, 404, 500) ile geri bildirim verir.
5. Üçüncü Taraf Sistemlerle Veri Köprüsü
CRM, ERP, e-posta pazarlama, analitik veya başka bir CMS ile çift yönlü veri akışı kurabilirsiniz. Bir e-ticaret sitesinde sipariş oluştuğunda WordPress’te özel bir “müşteri hikayesi” taslağı açılabilir; bir CRM’de müşteri segmenti değiştiğinde ilgili kullanıcı meta verileri güncellenebilir. İmkanlar, hayal gücünüz ve iş ihtiyacınızla sınırlıdır.
Gerçek Kod Örnekleri
Aşağıdaki örnekler PHP ve JavaScript’te en sık yapılan 3 işlemi gösterir: yazı listeleme, yeni yazı oluşturma, medya yükleme.
PHP ile Yeni Yazı Oluşturma
$response = wp_remote_post('https://siteadiniz.com/wp-json/wp/v2/posts', [
'headers' => [
'Authorization' => 'Basic ' . base64_encode('kullanici:uygulama_sifresi'),
'Content-Type' => 'application/json',
],
'body' => json_encode([
'title' => 'Yeni Yazı Başlığı',
'content' => 'Yazı içeriği...',
'status' => 'draft',
'categories' => [7],
]),
]);
echo wp_remote_retrieve_response_code($response);
JavaScript (fetch) ile Yazı Listeleme
fetch('https://siteadiniz.com/wp-json/wp/v2/posts?per_page=10')
.then(r => r.json())
.then(posts => {
posts.forEach(p => console.log(p.title.rendered));
});
curl ile Medya Yükleme
curl -X POST https://siteadiniz.com/wp-json/wp/v2/media \
-u "kullanici:uygulama_sifresi" \
-H "Content-Disposition: attachment; filename=gorsel.jpg" \
-H "Content-Type: image/jpeg" \
--data-binary @gorsel.jpg
Güvenlik: REST API’yi Açmak Riskli mi?
REST API, varsayılan olarak sitede etkindir ve temel uç noktalar herkese açıktır. Bu bir güvenlik açığı değildir — okunabilir içerik (yazılar, sayfalar, medya) zaten web sitenizin ön yüzünde de herkese açıktır. Yazma işlemleri ise her zaman kimlik doğrulaması gerektirir ve yetkisiz erişim 401 Unauthorized ile engellenir.
Bununla birlikte alınacak 4 temel önlem şunlardır:
- Application Password kullanın. wp-admin şifrenizden ayrı, kapsamı sınırlı ve izlenebilir bir kimlik bilgisidir. Şüpheli durumda tek tıkla iptal edilebilir.
- Okuma uç noktalarını kapatmayın. SEO ve sosyal paylaşım botlarının çalışması için içerik JSON’unun erişilebilir olması gerekir. “
disable_rest_api” gibi genel kapatma yaklaşımları sitenize zarar verir. - Hassas uç noktalara ekstra filtre uygulayın.
/usersuç noktası kullanıcı adlarını sızdırabilir; sürüm bilgisi gibi meta veriler botlar tarafından taranır.rest_authentication_errorsfiltresi ile belirli IP’lerden gelmeyen istekleri sınırlayabilirsiniz. - Rate limiting uygulayın. Sunucu tarafında (Nginx, Cloudflare) veya eklenti tarafında (WP REST API Controller, Rate Limiting eklentileri) dakikaki istek sayısını sınırlayın.
Sık Yapılan 5 Hata
- Kimlik doğrulamasız yazma isteği göndermek. Şifresiz
POST401 döner; çoğu geliştirici burada takılır. Çözüm: her istekteAuthorizationbaşlığını doğru formatta göndermek. pretty permalinkskapalı iken API’yi kullanmaya çalışmak. REST API çalışır, ancak sorgu parametreleri farklı yazılır. Ayarlar → Kalıcı Bağlantılar’dan “Yazı adı” seçmek en sağlıklısıdır.- Rate limit olmadan toplu işlem çalıştırmak. 10.000 yazılık bir import tek istekle değil, 50-100’lük partiler halinde ve aralarında bekleme ile yapılmalıdır; aksi halde sunucu 429 Too Many Requests döner.
- Custom field’ları doğrudan gövdeye yazmak. WordPress’te
meta_inputalanı kullanılır; gövdeye düz anahtar-değer yazmak kaydedilmez. - HTTP kodlarını yoksaymak. 200 dışındaki her kod bir hikaye anlatır. 401 kimlik, 403 yetki, 404 yol, 429 limit, 500 sunucu sorunudur. Hepsinin çözümü farklıdır.
Sıkça Sorulan Sorular
WordPress REST API ücretli mi?
Hayır. REST API, WordPress çekirdeğinin bir parçasıdır ve tüm sürümlerde ücretsiz olarak gelir. Ek uç nokta veya gelişmiş özellik istediğinizde WP REST API Controller, JWT Authentication gibi ücretsiz eklentilerden yararlanabilirsiniz. Ücretli eklentilere ihtiyaç duymadan, standart HTTP istemcisi (curl, Postman, fetch, axios) ile tüm temel işlemleri yapabilirsiniz.
Hangi WordPress eklentileri REST API ile uyumlu?
Çoğu modern eklenti REST uç noktalarını otomatik olarak ekler. Örneğin Advanced Custom Fields (ACF) kendi alanlarınıza acf alanı üzerinden erişim sağlar; WooCommerce ürün, sipariş ve müşteri uç noktalarını otomatik ekler; Yoast SEO meta alanlarını post gövdesinde taşır. Eklenti belgelerinde “REST API” kelimesini aramak yeterli bir filtredir.
REST API performansı düşürür mü?
Doğru yapılandırılmadığında evet. Özellikle büyük sitelerde /wp/v2/posts?per_page=100 gibi istekler ağır sorgular tetikleyebilir. Çözüm: per_page parametresini makul tutun (10-20), sık erişilen veri için transients veya Redis tabanlı bir önbellek katmanı kullanın, kritik uç noktalar için object cache uygulayın. Yüksek trafikli headless sitelerde genellikle build-time’da içerik çekilip statik dosyalara dönüştürülür; bu da REST’i esasen derleme aracına bağlar, ziyaretçi trafiğine değil.
Sonuç
WordPress REST API, içerik yönetim sisteminizi klasik bir blogdan modern bir veri platformuna taşır. Headless mimari, mobil uygulama backend’i, otomasyon ve AI entegrasyonu gibi pek çok senaryo, aynı uç nokta seti üzerinden çalışır. Doğru kimlik doğrulama yöntemi ve sıkı güvenlik uygulamaları ile birlikte kullanıldığında, hem geliştirici hızını hem de ürün esnekliğini önemli ölçüde artırır.
Bu rehberdeki örnekleri kendi sitenizde denerken, üretim ortamına geçmeden önce staging (test) ortamında çalışmanızı ve API isteklerini bir log dosyasında takip etmenizi öneririm. Herhangi bir adımda takılırsanız veya özel bir REST API entegrasyonuna ihtiyaç duyarsanız, başlık altındaki iletişim kanallarından bana ulaşabilirsiniz.
Bir Cevap Yaz
E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir.