0850 VİP numaralarla kurumsal iletişiminizi güçlendirin. Uygun numaraları sorgulayın.
WordPress Entegrasyon Rehberi

React Projenizi WordPress'e Bağlayın

Mevcut React/Vite projenizi WordPress CMS ile entegre etmek için iki farklı yaklaşım ve detaylı yol haritası

Headless WordPress Yaklaşımı (Önerilen)

WordPress'i sadece içerik yönetim sistemi (CMS) olarak kullanın, mevcut React frontend'iniz WordPress REST API veya GraphQL üzerinden içerikleri çeksin. Modern, hızlı ve esnek bir çözüm.

Avantajlar

Yüksek Performans
React SPA hızı korunur, SEO için SSR eklenebilir
Mevcut Kod Korunur
React projenizi olduğu gibi kullanabilirsiniz
Kolay Güncelleme
Frontend ve backend bağımsız güncellenebilir
Güvenlik
WordPress admin paneli ayrı sunucuda olabilir
Multi-Platform
Aynı API mobil uygulama için de kullanılabilir
Ekip Çalışması
Frontend ve backend ekipleri bağımsız çalışır

Dezavantajlar

İki ayrı sunucu/hosting gerekebilir (WordPress + React)
API entegrasyonu için geliştirme zamanı gerekir
WordPress eklentileri frontend ile uyumlu olmayabilir
SEO için Next.js gibi SSR framework'e geçiş gerekebilir

Uygulama Adımları

1

WordPress Kurulumu ve Yapılandırma

  • WordPress'i hosting'e kurun (wp.kobikom.com gibi)
  • REST API'yi aktif edin (varsayılan olarak açık)
  • CORS ayarlarını yapın (React uygulamanızın domain'ini izin verin)
  • JWT Authentication eklentisi kurun (güvenli API erişimi için)
2

React Projesine API Entegrasyonu

  • Axios veya Fetch ile WordPress REST API bağlantısı kurun
  • Blog yazıları için: /wp-json/wp/v2/posts
  • Sayfalar için: /wp-json/wp/v2/pages
  • Özel post type'lar için custom endpoint oluşturun
3

İçerik Yönetimi

  • WordPress admin panelinden blog, hizmetler, ürünler ekleyin
  • Custom Fields (ACF eklentisi) ile özel alanlar oluşturun
  • Medya kütüphanesini kullanarak görselleri yönetin
  • Yoast SEO ile meta bilgilerini düzenleyin
4

Deployment

  • WordPress: Geleneksel hosting (Hostinger, SiteGround vb.)
  • React: Vercel, Netlify veya AWS S3 + CloudFront
  • Environment variables ile API URL'lerini yönetin
  • CI/CD pipeline kurun (GitHub Actions)

Gerekli NPM Paketleri

# API İstekleri için npm install axios # WordPress REST API client (opsiyonel) npm install wpapi # GraphQL kullanacaksanız npm install @apollo/client graphql # JWT Authentication npm install jsonwebtoken # SEO için (Next.js'e geçerseniz) npm install next react react-dom

Örnek API Entegrasyon Kodu

1. API Service Oluşturma (src/services/wordpress.ts)
import axios from 'axios';

const WP_API_URL = import.meta.env.VITE_WP_API_URL || 'https://wp.kobikom.com/wp-json/wp/v2';

export const wordpressAPI = axios.create({
  baseURL: WP_API_URL,
  headers: {
    'Content-Type': 'application/json',
  },
});

// Blog yazılarını çek
export const getPosts = async (params?: { per_page?: number; page?: number }) => {
  const response = await wordpressAPI.get('/posts', { params });
  return response.data;
};

// Tek blog yazısı
export const getPost = async (slug: string) => {
  const response = await wordpressAPI.get(`/posts?slug=${slug}`);
  return response.data[0];
};

// Sayfaları çek
export const getPages = async () => {
  const response = await wordpressAPI.get('/pages');
  return response.data;
};

// Kategorileri çek
export const getCategories = async () => {
  const response = await wordpressAPI.get('/categories');
  return response.data;
};
2. Blog Sayfasında Kullanım
import { useState, useEffect } from 'react';
import { getPosts } from '../../services/wordpress';

export default function BlogPage() {
  const [posts, setPosts] = useState([]);
  const [loading, setLoading] = useState(true);

  useEffect(() => {
    const fetchPosts = async () => {
      try {
        const data = await getPosts({ per_page: 12 });
        setPosts(data);
      } catch (error) {
        console.error('Blog yazıları yüklenemedi:', error);
      } finally {
        setLoading(false);
      }
    };

    fetchPosts();
  }, []);

  if (loading) return <div>Yükleniyor...</div>;

  return (
    <div className="grid grid-cols-1 md:grid-cols-3 gap-6">
      {posts.map((post: any) => (
        <article key={post.id} className="bg-white rounded-xl shadow-lg">
          <img 
            src={post.featured_media_url} 
            alt={post.title.rendered}
            className="w-full h-48 object-cover rounded-t-xl"
          />
          <div className="p-6">
            <h2 className="text-xl font-bold mb-2">
              {post.title.rendered}
            </h2>
            <div 
              className="text-slate-600 text-sm"
              dangerouslySetInnerHTML={{ __html: post.excerpt.rendered }}
            />
            <a 
              href={`/blog/${post.slug}`}
              className="text-purple-600 font-semibold mt-4 inline-block"
            >
              Devamını Oku →
            </a>
          </div>
        </article>
      ))}
    </div>
  );
}
3. Environment Variables (.env)
VITE_WP_API_URL=https://wp.kobikom.com/wp-json/wp/v2
VITE_WP_SITE_URL=https://wp.kobikom.com

Önerilen WordPress Eklentileri

Advanced Custom Fields (ACF)
Özel alanlar oluşturun
WP REST API Controller
API endpoint'lerini yönetin
JWT Authentication
Güvenli API erişimi
Yoast SEO
SEO optimizasyonu
WPGraphQL
GraphQL API (REST yerine)
Enable CORS
Cross-origin istekleri

Tahmini Maliyet

WordPress Hosting (Hostinger, SiteGround)$5-20/ay
React Hosting (Vercel, Netlify - Ücretsiz plan)$0/ay
Domain (.com)$10-15/yıl
Toplam (Aylık)~$5-20

Karşılaştırma Tablosu

ÖzellikHeadless WordPressWordPress Tema
Geliştirme Süresi1-2 hafta3-4 hafta
PerformansÇok Yüksek ⚡Orta 🐢
SEOİyi (SSR ile Mükemmel)Mükemmel
Maliyet$5-20/ay$5-10/ay
Bakım KolaylığıKolay ✅Zor ❌
EsneklikÇok Yüksek 🚀Düşük
Eklenti DesteğiSınırlıTam
Mobil UygulamaAynı API ✅Ayrı geliştirme ❌

Tavsiyemiz: Headless WordPress

Mevcut React projenizin performansını ve modern yapısını koruyarak WordPress'in güçlü içerik yönetim özelliklerinden yararlanın. Hem hızlı, hem esnek, hem de geleceğe hazır bir çözüm.