OpenAI ile Blog Yazısı Üretip WordPress’e Taslak Olarak Kaydetme

openai ile blog yazısı Üretip wordpress'e taslak olarak kaydetme

WordPress siteniz için hızlıca içerik üretmek ve bunu taslak olarak saklamak mı istiyorsunuz? OpenAI ile blog yazısı üretip WordPress’e taslak olarak kaydetme süreci, doğru yapılandırıldığında büyük zaman kazandırır. Bu yazıda, OpenAI ile Blog Yazısı Üretip WordPress’e Taslak Olarak Kaydetme niyetiyle karşılaşılan en yaygın problemi ele alıyor, neden olduğunu açıklıyor ve uygulanabilir adımlar veriyorum.

Asıl problem ne?

asıl problem ne bölümünü anlatan görsel

Kullanıcıların sık karşılaştığı tek ana sorun: “OpenAI’den elde ettiğim metni WordPress’e güvenli, düzenli ve editöre uygun şekilde taslak olarak aktaramıyorum.” Sorunun arkasında birkaç alt problem vardır: kimlik doğrulama, içerik formatlama (HTML vs Markdown), başlık/etiket/özet/öne çıkan görsel yerleştirme, güvenlik (anahtarların sızması) ve otomasyon sırasında içerik kalitesinin korunması.

Neden oluyor?

neden oluyor bölümünü anlatan uygulama görseli
  • OpenAI çıktısı genellikle düz metin veya Markdown olur; WordPress beklediği format ve meta bilgileri istemez. Bu uyumsuzluk manuel müdahale gerektirir.
  • WordPress’e içerik yazma için doğru kimlik doğrulama (Application Passwords, JWT, OAuth) ve izinlerin yapılandırılması gerekir; eksik izin posta kaydını engeller.
  • Otomasyon sırasında API anahtarlarının (OpenAI veya WordPress) yanlış yerde tutulması güvenlik riski oluşturur.
  • İçerik kalitesi ve yönergelere uyum sorunları, otomatik kaydedilen taslakların editöryal kontrole ihtiyaç duymasına yol açar.
  • Hatalı hata yönetimi (rate limit, zaman aşımı) iş akışının başarısız olmasına neden olur.

Nasıl çözülür?

nasıl çözülür bölümünü anlatan sonuç ve kontrol görseli

Aşağıdaki adımlar, OpenAI çıktısını WordPress’e taslak olarak kaydetme sürecini pratik şekilde işler. Her adımda dikkat edilmesi gerekenler ve kısa kod örnekleri yer alıyor.

1) Hazırlık: Erişim, izin ve güvenlik

  • WordPress tarafı:
  • Tercih: WordPress 5.6+ için “Application Passwords” kullanın. Alternatif: güvenli bir JWT eklentisi veya REST API için OAuth.
  • Kullanıcı hesabına yalnızca gerekli izinleri verin (yazar/katkıda bulunan gibi). Gereğinden fazla yetki vermeyin.
  • OpenAI tarafı:
  • API anahtarınızı güvenli ortam değişkeni olarak saklayın. Kod deposuna koymayın.
  • Sunucu:
  • İsteklerinizi sunucu tarafından (backend) yapın; istemci tarafında OpenAI anahtarını açığa çıkarmayın.

Karar noktası: küçük bir kişisel blogsa Application Passwords yeterli; çok kullanıcılı bir sistem veya üçüncü parti entegrasyon varsa JWT/OAuth tercih edin.

Bu konuyla ilgili tamamlayici bilgi icin WordPress İçerik Oluşturma Programımızı Nasıl Kuruyoruz? rehberini de inceleyebilirsiniz.

2) Prompt tasarımı ve içerik yapısı

  • Prompt’u yazarken şunları isteyin: Başlık, meta açıklama (excerpt), kategori önerileri, anahtar kelime yoğunluğu, taslak içeriğin HTML veya Markdown çıktısı.
  • Örnek kısa prompt:
  • “Aşağıdaki konu için 700-900 kelimelik, Türkçe, SEO dostu ve düzenlenmiş bir blog taslağı üret. Çıktıyı Markdown formatında ver. Başlık, kısa özet (2 cümle), ana başlıklar ve paragraflar, önerilen etiketleri listele.”
  • Kalite kontrol önerisi: çıktı uzunluğunu, tonunu ve doğruluk iddialarını kontrol eden ek bir doğrulama adımı planlayın.

3) OpenAI çağrısı ve çıktı biçimlendirme

  • OpenAI’den gelen metni iki şekilde değerlendirebilirsiniz:
  • Markdown -> WordPress editörüne HTML olarak dönüştürme (öncelikli, çünkü görsel ve blok düzeni korur).
  • Direkt HTML üretimi isteme (daha doğrudan, ama güvenlik riskleri taşır; XSS vs).
  • Markdown dönüştürme için sunucuda bir kütüphane kullanın (ör. remark/markdown-it).

Kod örneği (Node.js, basit akış):

// Özet: Bu snippet öğreticidir; gerçek anahtarlarınızı ortam değişkeninde saklayın.
const OpenAI = require("openai");
const fetch = require("node-fetch");
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });

async function generateDraft(topic) {
  const prompt = `Konu: ${topic}
Üret: Başlık, kısa özet, Markdown içerik, önerilen etiketler.`;
  const res = await openai.chat.completions.create({
    model: "gpt-4o-mini",
    messages: [{ role: "user", content: prompt }],
    max_tokens: 1200
  });
  return res.choices[0].message.content;
}

4) WordPress’e taslak olarak kaydetme

  • Endpoint: POST /wp-json/wp/v2/posts
  • Body örneği:
  • title, content (HTML), status: “draft”, excerpt, categories, tags
  • Kimlik doğrulama: Basic Auth with Application Passwords veya Authorization: Bearer (JWT).

Kod örneği (Node.js, fetch ile WordPress’e gönderim):

async function saveAsDraftToWP(postData) {
  const wpUser = process.env.WP_USER;
  const wpAppPass = process.env.WP_APP_PASS; // application password
  const auth = Buffer.from(`${wpUser}:${wpAppPass}`).toString('base64');

  const res = await fetch("https://example.com/wp-json/wp/v2/posts", {
    method: "POST",
    headers: {
      "Authorization": `Basic ${auth}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      title: postData.title,
      content: postData.htmlContent,
      excerpt: postData.excerpt,
      status: "draft",
      categories: postData.categories || [],
      tags: postData.tags || []
    })
  });
  return res.json();
}

5) Medya ve öne çıkan görsel ekleme

  • Görsel otomatik ekleme gerekiyorsa önce medyayı yükleyin: POST /wp-json/wp/v2/media (dosya içeriği multipart/form-data).
  • Yükledikten sonra dönen ID’yi post meta olarak featured_media alanına ekleyin.
  • Risk: otomatize edecekseniz telif haklarına dikkat edin; görsel lisansını doğrulayın.

6) Hata yönetimi ve güvenlik önlemleri

  • Rate limit ve zaman aşımı kontrolleri koyun; OpenAI ile WP isteklerinde retry stratejisi kullanın.
  • API anahtarlarını erişimi kısıtlı sunucuda tutun, loglarda anahtar yazmayın.
  • OpenAI çıktısını asla otomatik olarak yayınlamayın; taslak olarak bırakın ve editoryal inceleme zorunlu olsun.

Hata kontrolü örnekleri

  • 401 Unauthorized (WP): uygulama parolası yanlış veya kullanıcı yetkisi yok.
  • 429 Rate limit (OpenAI): istekleri yavaşlatın veya queue kullanın.
  • 500/502: geçici sunucu problemi; retry + uyarı e-posta/Slack.

Hangi durumda hangi yol seçilir?

  • Kişisel tek kişilik blog:
  • Kolay ve hızlı: Application Passwords + basit Node/Python script.
  • Çok yazarlı veya kurumsal site:
  • Güvenli entegrasyon: JWT/OAuth, merkezi servis, otomatik içerik onayı yerine editoryal akış.
  • Harici entegrasyon (3. parti araç):
  • Kesinlikle sunucu tarafı proxy + sınırlama + logging; üçüncü tarafların anahtarlarla çalışmasına izin vermeyin.

Karar ölçütleri:

  • Güvenlik önceliği yüksekse => JWT/OAuth + merkezi backend.
  • Hız ve basitlik önceliği yüksekse => Application Passwords + sunucu scripti.
  • Denetleme gerekiyorsa => otomatik yayın yok, sadece taslak.

Uygulanabilir kontrol listesi

  • [ ] OpenAI API anahtarı ortam değişkeninde ve erişim sınırlı.
  • [ ] WordPress uygulama parolası veya JWT hazır.
  • [ ] Prompt: başlık, özet, içerik formatı (Markdown vs HTML) isteniyor.
  • [ ] Sunucuda Markdown -> HTML dönüşümü için kütüphane yüklü.
  • [ ] WordPress REST çağrıları için hata ve retry mekanizması var.
  • [ ] Medya yükleme ve featured_media yönetimi tanımlı.
  • [ ] Çıktılar otomatik yayınlanmıyor; taslak olarak kaydediliyor.
  • [ ] Loglar anahtar içermeyecek şekilde yapılandırıldı.
  • [ ] İnsan editör onayı için bildirim süreci var.

Örnek senaryo: Haftalık 1 içerik iş akışı

  1. Editör konu listesi hazırlar.
  2. Backend script her sabah ilk saatlerde belirlenen konu için OpenAI çağrısı yapar; prompt’ta “Markdown” ve “Başlık + Özet” istenir.
  3. Backend Markdown’ı HTML’ye çevirir, WP’ye POST ile taslak kaydeder; kategori ve etiket önerilerini de ekler.
  4. Sistem Slack’e “Yeni taslak oluşturuldu” bildirimi gönderir; editör taslağı açıp düzenler, görsel ekler ve yayınlar.

Bu akışla insan denetimi korunurken zaman kazanılır.

Sonuç ve öneriler

OpenAI ile blog yazısı üretip WordPress’e taslak olarak kaydetme, doğru yapılandırma ile verimli bir iş akışı sağlar. Özetle:

  • Güvenlik: API anahtarlarını sunucuda saklayın, uygulama parolaları veya JWT tercih edin.
  • Format: OpenAI çıktısını Markdown isteyin ve sunucuda HTML’ye dönüştürün; bu, WordPress editöründe düzenlemeyi kolaylaştırır.
  • Kontrol: Otomatik yayınlama yapmayın; içerikleri taslak olarak bırakıp insan onayı sağlayın.
  • Dayanıklılık: Hata/yük yönetimi, retry stratejileri ve logging kurun.

Bu yazı, OpenAI ile Blog Yazısı Üretip WordPress’e Taslak Olarak Kaydetme sürecini uygulamaya geçirmeniz için pratik bir yol haritası sunuyor. İsterseniz örnek Node.js scriptinin tam hâlini ve Markdown -> HTML dönüşümü için önerdiğim paketleri paylaşabilirim.

Bu konuyla ilgili tamamlayici bilgi icin WhatsApp’tan Gelen Mesajları Google Sheets’e Otomatik Kaydetme rehberini de inceleyebilirsiniz.

Bu konuyla ilgili tamamlayici bilgi icin WordPress İçerik Otomasyonu: Bugün Kurabileceğiniz Pratik Rehber rehberini de inceleyebilirsiniz.

Bu konuyla ilgili tamamlayici bilgi icin Yeni WordPress Yazısı Yayınlanınca X ve LinkedIn’de Otomatik Paylaşım Nasıl Yapılır? rehberini de inceleyebilirsiniz.

Bu konuyla ilgili tamamlayici bilgi icin WordPress İçerik Otomasyonu Platformu Nasıl Çalışır? Excel’den Taslağa Uzanan Akıllı İçerik Akışı rehberini de inceleyebilirsiniz.

Yorum bırakın

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

Scroll to Top