Tüm Projeler
2025

Torlak Turizm WordPress Teması

Hazır bir WordPress temasından sıfırdan geliştirilen özel temaya geçiş: Carbon Fields tabanlı yönetilebilir içerik altyapısı, tur CPT'leri ve AJAX filtreleme.

Torlak Turizm WordPress Teması

PROJE DETAYI

Torlak Turizm, 30 yılı aşkın süredir Hac, Umre, kültür turları ve transfer hizmetleri sunan bir turizm şirketi. Site hazır bir WordPress teması üzerinde çalışıyordu; içerik büyük ölçüde sayfa kurucuya gömülmüştü, tur paketleri normal yazı/sayfa olarak tutuluyordu ve her yeni sezon için içerik girmek zahmetliydi. Bu yapıyı, sıfırdan geliştirdiğim özel bir WordPress temasına taşıdım. Neden Özel Tema Hazır tema üç noktada tıkanıyordu. Turlar veri değil içerik olarak tutulduğu için tarih, süre, havayolu ya da otel üzerinden filtreleme yapılamıyordu. Sayfa kurucunun ürettiği fazladan işaretleme ve yüklediği eklenti yığını sayfa hızını aşağı çekiyordu. Renk, logo, WhatsApp numarası gibi kurumsal bilgiler sayfa sayfa dağılmıştı ve tek noktadan güncellenemiyordu. Mimari Tema, 'functions.php' üzerinden koşullu olarak yüklenen modüllere ayrıldı: tema kurulumu, enqueue, yardımcılar, CPT'ler, taksonomiler, alan şemaları, tema ayarları, AJAX filtre, iletişim formu ve SEO. Her modül tek bir sorumluluk taşıyor. İçerik modellemesi için dört custom post type tanımlandı: 'umre_turu', 'hac_programi', 'kultur_turu' ve 'cruise_turu'. Her biri kendi rewrite slug'ıyla ('umre-turlari', 'hac', 'kultur-turlari', 'cruise-turlari') temiz URL üretiyor. Filtreleme ekseni taksonomilere taşındı: tur tarihi, süre, havayolu, Mekke oteli, Medine oteli ve fiyat kategorisi. Yönetilebilirlik ve Carbon Fields Temanın temel ilkesi hiçbir içeriğin koda gömülmemesiydi. Carbon Fields ile CPT meta alanları, otel ve havayolu term meta şemaları ve tema ayarları sayfaları tanımlandı. Alan tanımları veritabanında değil kodda yaşadığı için tema sürüm kontrolüne tam uyumlu ve devri kolay. Marka renkleri tema ayarlarından girilip 'wp_head' içinde ':root' CSS değişkenleri olarak basılıyor; CSS bu değişkenleri kullandığı için renk değişikliği anında tüm siteye yansıyor. WhatsApp numarası tek bir alandan yönetiliyor ve tüm "Bilgi ve Rezervasyon" butonları ile sabit balon aynı yardımcı fonksiyondan besleniyor. Tur Filtreleme Umre arşivi için AJAX tabanlı bir filtre paneli geliştirdim. İstek parametreleri 'tax_query' ve 'meta_query' argümanlarına dönüştürülüyor, sayfalama korunuyor ve aynı sorgu kurucu hem AJAX handler'ında hem de 'pre_get_posts' üzerinden ana arşiv sorgusunda kullanılıyor; böylece filtrelenmiş sonuç JavaScript kapalıyken de doğru çalışıyor. Fiyata göre sıralamayı hızlandırmak için taksonomi değerleri post meta'ya yansıtılıyor ve mevcut kayıtlar için geriye dönük dolduran bir backfill fonksiyonu yazıldı. Performans Sayfa kurucu ve eşlik eden eklentiler tamamen elendi; şablonlar doğrudan PHP ile yazıldı. CSS ve JS sürümleri 'filemtime' değerine bağlandı, böylece cache busting elle sürüm artırmaya gerek kalmadan çalışıyor. WordPress'in varsayılan head çıktısı temizlendi, görsel boyutları tema tarafında tanımlandı ve slider için Swiper dışında istemci tarafı bağımlılığı bırakılmadı. SEO Korunumu Taşımada en kritik başlık mevcut organik trafiğin korunmasıydı. Yeni rewrite slug'ları eski URL yapısıyla eşlenerek kalıcı yönlendirmeler kuruldu. Tema kendi SEO katmanını taşıyor: meta açıklama, canonical, Open Graph ve Twitter Card etiketleri üretiliyor. Bir SEO eklentisi aktifse tema kendi çıktısını devre dışı bırakıp çakışmayı önlüyor. Yapılandırılmış veri tarafında Organization, Tour (fiyat teklifi ve para birimi ISO 4217'ye çevrilerek) ve BreadcrumbList şemaları JSON-LD olarak basılıyor. Kesintisiz Geçiş Yeni tema staging ortamında geliştirildi ve içerik aktarımı orada doğrulandı. Tema etkinleştirmede rewrite kurallarını temizliyor ve süre, fiyat kategorisi, havayolu gibi taksonomiler için örnek terimleri otomatik tohumluyor; bu sayede canlıya alma adımı tek bir tema değişimine indi. Carbon Fields 'composer install' ile 'vendor/' altına kuruluyor; kütüphane yoksa tema çökmüyor, yalnızca admin'de uyarı gösterip özel alan panellerini gizliyor. Yayına alma sonrası müşteri ekibi için bir yönetici kılavuzu hazırlandı. Sonuç Site, eklenti bağımlılığı azaltılmış, tur paketleri gerçek anlamda veri olarak modellenmiş ve tamamen panelden yönetilebilen bir yapıya kavuştu. Yeni bir sezon turu eklemek sayfa kurucuda blok kopyalamak yerine bir CPT kaydı açıp taksonomi seçmeye indirgendi; filtreleme, fiyat sıralaması ve yapılandırılmış veri bu kayıttan otomatik türüyor.

TEKNOLOJİ STACK

WordPressPHPCarbon FieldsCustom Post TypeAJAXSEOSchema.orgSwiper