🇬🇧 English: Read this in English →

Claude, Anthropic’in AI modeli, WordPress eklenti geliştirme için özellikle uygundur. Geniş bağlam penceresi, güçlü talimat takip etme ve yapılandırılmış çıktı yetenekleri, onu WordPress içinde içerik analizi, üretimi ve dönüştürme görevleri için doğal bir eş yapıyor. Ama seni baştan uyarayım: bir eklentiyi “akıllı” yapan şey modelin kendisi değil, onun etrafına ördüğün savunma. Önbellek, hata yönetimi, maliyet sınırı — asıl iş bunlar. Model sadece motor; senin yazdığın kısım aracın geri kalanı.

Bu rehber, Claude API kullanan, üretime hazır (production-ready) bir WordPress eklentisi geliştirmenin adımlarını anlatıyor. Kodun tamamı doğrudan kullanabileceğin hâlde; ben aradaki kararları ve “ben olsam nerede dururdum” notlarını ekleyeceğim.

Kurulum: WordPress’i Claude’a Bağlama

İlk olarak, Anthropic PHP SDK’sını yükle ya da doğrudan HTTP istekleri yap. WordPress eklentileri için doğrudan HTTP daha basittir; çünkü eklenti dizininde Composer bağımlılık yönetiminden kaçınırsın. Ben olsam bir eklenti için neredeyse her zaman düz HTTP’yi seçerdim — dağıttığın her bağımlılık, günün birinde güncellemesini kovaladığın bir bağımlılıktır.

class ClaudeAPI {

private $api_key;

private $model = 'claude-sonnet-4-20250514';

private $base_url = 'https://api.anthropic.com/v1/messages';

public function __construct($api_key) {

$this->api_key = $api_key;

}

public function send_message($prompt, $system = '', $max_tokens = 1024) {

$body = [

'model' => $this->model,

'max_tokens' => $max_tokens,

'messages' => [

['role' => 'user', 'content' => $prompt]

]

];

if ($system) {

$body['system'] = $system;

}

$response = wp_remote_post($this->base_url, [

'headers' => [

'Content-Type' => 'application/json',

'x-api-key' => $this->api_key,

'anthropic-version' => '2023-06-01'

],

'body' => json_encode($body),

'timeout' => 30

]);

if (is_wp_error($response)) {

return ['error' => $response->get_error_message()];

}

$data = json_decode(wp_remote_retrieve_body($response), true);

return $data['content'][0]['text'] ?? '';

}

}

Pratik Kullanım Örneği: Meta Açıklamalarını Otomatik Oluşturma

En yüksek ROI uygulamalarından biri: eksik olan yazılar ve ürünler için otomatik olarak SEO meta açıklamaları oluşturma.

add_action('save_post', 'auto_generate_meta_description', 20, 2);

function auto_generate_meta_description($post_id, $post) {

// Otomatik kaydetmeleri ve revizyonları atla

if (wp_is_post_autosave($post_id) || wp_is_post_revision($post_id)) return;

// Meta açıklama zaten varsa atla

$existing = get_post_meta($post_id, '_yoast_wpseo_metadesc', true);

if (!empty($existing)) return;

$content = wp_strip_all_tags($post->post_content);

if (strlen($content) < 100) return;

// Token tasarrufu için içeriği kısalt

$content = substr($content, 0, 2000);

$claude = new ClaudeAPI(get_option('claude_api_key'));

$meta = $claude->send_message(

"Bu içerik için bir meta açıklama yaz. Kurallar: tam olarak 150-160 karakter, ana anahtar kelimeyi içer, çekici ve tıklanmaya değer.\n\nİçerik: {$content}",

"Sen bir SEO uzmanısın. SADECE meta açıklama metnini döndür, başka bir şey döndürme.",

200

);

if ($meta && !isset($meta['error'])) {

update_post_meta($post_id, '_yoast_wpseo_metadesc', sanitize_text_field($meta));

}

}

Önbellekleme: Aynı Cevap İçin İki Kez Ödeme Yapmayın

AI API çağrıları yavaştır (1-5 saniye) ve para harcar. Agresif önbellekle. Bunu bir öneri değil, kural olarak koy: aynı girdiye iki kez para ödemek, bu işi ölçekte pahalıya boğan tek en yaygın hata.

function cached_claude_request($prompt, $system = '', $ttl = 86400) {

$cache_key = 'claude_' . md5($prompt . $system);

$cached = get_transient($cache_key);

if ($cached !== false) {

return $cached;

}

$claude = new ClaudeAPI(get_option('claude_api_key'));

$result = $claude->send_message($prompt, $system);

if ($result && !isset($result['error'])) {

set_transient($cache_key, $result, $ttl);

}

return $result;

}

Değişmeyen WooCommerce ürün açıklamaları için süresiz önbellekle. Dinamik içerik analizi için daha kısa TTL’ler kullan.

Maliyet Yönetimi

Claude API fiyatlandırması token tabanlıdır. Tipik bir meta açıklama üretimi ~$0.005 maliyet. Ölçekte:

Görev Token (yaklaşık) Çağrı başı maliyet 1,000 çağrı
Meta açıklama ~800 $0.005 $5
Ürün açıklaması ~2,000 $0.015 $15
İçerik özeti ~1,500 $0.010 $10
Görsel alt metni ~500 $0.003 $3

Maliyet kontrol stratejileri:

  • Hız sınırlaması: Saatte X öğe işle, hepsini birden değil
  • Toplu işleme: Çalıştırma başına birkaç öğe işlemek için WP-Cron kullan
  • Sadece kullanıcı tetiklemeli: Otomatik üretme; “AI ile Üret” butonu ekle
  • Model seçimi: Basit görevler için Haiku, karmaşık olanlar için Sonnet kullan

Ayarlar Sayfası

Her WordPress eklentisinin ayarlar sayfasına ihtiyacı var. API anahtarını güvenli şekilde sakla:

// Ayarları kaydet

add_action('admin_init', function() {

register_setting('claude_settings', 'claude_api_key', [

'sanitize_callback' => 'sanitize_text_field'

]);

});

// Ayarlar sayfası

add_action('admin_menu', function() {

add_options_page('Claude AI Ayarları', 'Claude AI', 'manage_options', 'claude-ai', function() {

echo '

Claude AI Ayarları

';

echo '

';

settings_fields('claude_settings');

echo '

';

echo '

';

echo '

';

echo '

API Anahtarı
';

submit_button();

echo '

';

});

});

Hata Yönetimi ve Loglama

Bir API hatasının WordPress siteni bozmasına asla izin verme:

function safe_claude_request($prompt, $system = '') {

try {

$result = cached_claude_request($prompt, $system);

if (isset($result['error'])) {

error_log('Claude API Hatası: ' . $result['error']);

return false;

}

return $result;

} catch (Exception $e) {

error_log('Claude API İstisnası: ' . $e->getMessage());

return false;

}

}

İçeriğin Ötesinde: Diğer Eklenti Fikirleri

  • Yorum moderasyonu: Yorumları spam/meşru/inceleme-gerekiyor olarak sınıflandır
  • İçerik kalite puanlama: Yazı okunabilirliği, SEO optimizasyonu ve eksiksizliği analiz et
  • Otomatik etiketleme: Yazı içeriğine dayalı kategori ve etiket öner
  • Çeviri yardımı: Çok dilli siteler için çeviriler üret
  • Schema markup üretimi: İçeriği analiz et ve uygun JSON-LD üret

“Zekâyı” bütçeyle terbiye etmeyi yıllar önce öğrendim

Şu önbellek, hız sınırı, “sadece kullanıcı tetiklesin” disiplinine bakınca içimden gülüyorum, çünkü bu terbiyeyi bir API’nin var olmasından çok önce, çok kullanıcılı oyunlar yazarken öğrendim. O günlerde bir rakibi ya da bir karakteri “akıllı” göstermenin yolu, sonsuz hesap gücü değildi — öyle bir şey yoktu. Her davranışı bir avuç kurala sığdırır, pahalı olan hesabı önceden yapıp saklar, ekranda sadece sonucu oynatırdın. Zekâ hissi, modelin değil, etrafına kurduğun bütçenin eseriydi.

Claude API ile eklenti yazmak bana tıpatıp aynı oyunu oynatıyor. Motor bu sefer gerçekten güçlü, ama kural değişmedi: her çağrıyı tetikleme, sonucu sakla, pahalı olanı ölç ve kullanıcıya hep akıcı hisset ver. Bir eklentiyi profesyonel yapan şey modelin ne kadar zeki olduğu değil, sen onu ne kadar terbiyeli çağırdığın. Otuz yıl önce bir oyunda öğrendiğim ders bugün bir get_transient satırında yaşıyor — isim değişti, disiplin aynı.

Sonuç

Claude API, WordPress eklentileri için güçlü olanaklar açar. Üretime hazır bir uygulamanın anahtarı savunmacı kodlama: her şeyi önbellekle, hataları zarifçe ele al, maliyetleri proaktif şekilde yönet ve bir AI API hatasının temel WordPress deneyimini etkilemesine asla izin verme. Meta açıklama üretimi gibi odaklı bir kullanım örneğiyle başla, değeri kanıtla, sonra genişlet. Açık konuşayım: tek bir işi kusursuz yapan küçük bir eklenti, on işi yarım yapan gösterişli bir “AI süiti”nden her zaman daha değerlidir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Close Search Window