WordPress Nedir?
Kısa tanım
WordPress, PHP ile yazılmış, MySQL veya MariaDB veritabanı kullanan ve GPL lisansıyla dağıtılan açık kaynak bir içerik yönetim sistemidir. Blog yazılımı olarak doğmuş, tema ve eklenti mimarisi sayesinde kurumsal sitelerden e-ticaret mağazalarına kadar geniş bir kullanım alanı kazanmıştır. Kendi sunucunuza kurduğunuz WordPress.org yazılımı ile barındırılan bir hizmet olan WordPress.com aynı şey değildir.
Diğer adları: WP, WordPress.org, custom post type, özel yazı türü, özel içerik türü

WordPress.org ve WordPress.com farkı
“WordPress” adı iki farklı şeyi anlatmak için kullanılır. WordPress.org, indirip kendi hosting'inize kurduğunuz açık kaynak yazılımdır; kod, veritabanı ve eklenti seçimi tamamen sizdedir, bakım sorumluluğu da. WordPress.com ise Automattic'in aynı yazılım üzerine kurduğu barındırılan bir hizmettir; sunucu yönetimi sağlayıcıdadır, ama hangi özelliklerin kullanılabildiği seçilen pakete bağlıdır. Bir ajans veya geliştirici “WordPress ile yapalım” dediğinde neredeyse her zaman ilkini kastediyordur.
Yazılım GPLv2 (veya sonrası) lisansıyla dağıtılır. WordPress.org'un resmî tutumu, eklenti ve temaların da türev çalışma sayıldığı ve bu lisansı devraldığı yönündedir.
Çekirdek, tema ve eklenti
Bir WordPress sitesi üç katmandan oluşur:
- Çekirdek (core): Kullanıcı yönetimi, içerik kaydı, medya, yorumlar, REST API ve yönetim paneli. Çekirdek dosyaları asla düzenlenmez; her güncelleme bu dosyaların üzerine yazar.
- Tema: İçeriğin nasıl görüneceğini belirleyen şablonlar ve stiller.
- Eklenti: Yeni işlevler ekleyen kod paketleri.
Tema ve eklentiler çekirdeğe “hook” denen kancalar üzerinden bağlanır. Action kancaları belirli bir anda kod çalıştırmayı (ör. bir yazı kaydedildiğinde), filter kancaları ise WordPress'in ürettiği bir değeri değiştirmeyi (ör. yazı içeriği ekrana basılmadan önce) sağlar. Veri tarafında neredeyse her şey bir “post”tur: yazılar, sayfalar, medya dosyaları, revizyonlar ve menü öğeleri aynı tabloda, farklı türlerle saklanır. İçerik bugün varsayılan olarak blok düzenleyici ile girilir.
Özel yazı türleri (custom post types)
Yalnızca “yazı” ve “sayfa” ile her içerik iyi temsil edilemez. Referans projeler, ekip üyeleri, şubeler, etkinlikler veya ürünler kendi alanlarına, arşiv sayfalarına ve URL yapısına ihtiyaç duyar. WordPress bunun için özel yazı türleri tanımlamaya izin verir:
<?php
add_action( 'init', function () {
register_post_type( 'acme_reference', array(
'labels' => array(
'name' => 'Referanslar',
'singular_name' => 'Referans',
),
'public' => true,
'has_archive' => true,
'show_in_rest' => true, // blok düzenleyicide açılabilmesi için
'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt' ),
'rewrite' => array( 'slug' => 'referanslar' ),
) );
} );Birkaç ayrıntı sonradan sorun çıkarmaması için önemlidir. Resmî belgelere göre tür init kancasında kaydedilmeli, adı bir önekle başlamalı ve 20 karakteri aşmamalıdır. show_in_rest değeri true olmazsa tür blok düzenleyicide açılmaz. Tanım temaya değil bir eklentiye konmalıdır; aksi hâlde tema değiştiğinde içerik panelden kaybolur. URL kuralları değiştiğinde kalıcı bağlantı ayarlarının yenilenmesi gerekir, ama bu işlem her sayfa yüklemesinde değil, yalnızca eklenti etkinleştirildiğinde yapılmalıdır. Türleri gruplamak için kategori ve etiket mantığındaki taksonomiler kullanılır.
Güçlü yanları ve sınırları
WordPress'in en büyük avantajı ekosistemidir: editörlerin büyük kısmı arayüzü tanır, hemen her ihtiyaç için bir eklenti bulunur ve geliştirici bulmak kolaydır. Kendi sunucunuzda çalıştığı için veri ve kod sizde kalır.
Aynı ekosistem zayıf noktayı da oluşturur. Her eklenti ayrı bir bakım ve güvenlik sorumluluğudur; güncellenmeyen eklenti ve temalar WordPress sitelerinde sık görülen saldırı giriş noktalarıdır. Performans ağırlıklı olarak hosting kalitesine, temaya ve eklentilerin her sayfada ne yüklediğine bağlıdır. Karmaşık iş kuralları, yoğun veri ilişkileri veya uygulama benzeri akışlar gerektiren projelerde WordPress'i zorlamak, bakımı zor bir eklenti yığınına dönüşebilir.
Kurulumdan sonra başlayan iş
- Çekirdek, tema ve eklenti güncellemelerinin düzenli takibi.
- Sunucudaki PHP ve veritabanı sürümlerinin desteklenen aralıkta tutulması.
- Güncellemelerin önce bir staging ortamında denenmesi.
- Düzenli ve sunucu dışına alınan yedekler.
- Kullanıcı rollerinin gözden geçirilmesi ve yönetici hesaplarının az sayıda tutulması.

