Gereksinimler ve Ortam Kurulumu
WordPress'i yerel bir bilgisayarda veya canlı bir sunucuda çalıştırmak için belirli teknik gereksinimler bulunmaktadır. 2026 standartlarına göre, WordPress'in performanslı çalışması için en az PHP 8.2 veya üzeri bir sürüm, MySQL 8.0 veya MariaDB 10.6+ veritabanı sunucusu gereklidir.
- PHP 8.2+: Daha hızlı çalışma ve modern sözdizimi desteği sağlar.
- MySQL 8.0+: Veri bütünlüğü ve yüksek performans için zorunludur.
- HTTPS Desteği: Güvenli veri transferi için SSL sertifikası şarttır.
- Apache veya Nginx: Sunucu yapılandırması için yaygın kullanılan web sunucularıdır.
WordPress Kurulumu ve Veritabanı Yapılandırması
WordPress kurulumu, wp-config.php dosyasının doğru yapılandırılmasıyla başlar. Bu dosya, veritabanı bağlantı bilgilerinizi ve güvenlik anahtarlarınızı barındırır. Aşağıdaki kod bloğu, veritabanı bağlantısı için kullanılan temel tanımlamaları göstermektedir.
// Veritabanı yapılandırması
define( 'DB_NAME', 'wp_veritabani_adi' );
define( 'DB_USER', 'veritabani_kullanicisi' );
define( 'DB_PASSWORD', 'guclu_bir_sifre_buraya' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );
Bu tanımlamalar, WordPress'in veritabanı ile konuşmasını sağlar. DB_CHARSET değerinin utf8mb4 olması, emoji ve özel karakterlerin veritabanında sorunsuz saklanması için kritiktir.
Özel Bir WordPress Eklentisi Nasıl Yazılır?
WordPress'in en güçlü yanı, çekirdek dosyaları değiştirmeden işlevsellik ekleyebilmenizdir. Eklenti yazmak için wp-content/plugins/ dizini altında bir klasör oluşturmanız ve ana PHP dosyanızı tanımlamanız gerekir.
/**
* Plugin Name: Ozel Eklenti Ismi
* Description: Basit bir fonksiyonel eklenti ornegi.
* Version: 1.0
*/
add_action( 'init', 'eklenti_baslatma_fonksiyonu' );
function eklenti_baslatma_fonksiyonu() {
// Eklenti aktif oldugunda calisacak kodlar
error_log('Eklenti basarili bir sekilde yüklendi.');
}
add_action fonksiyonu, WordPress'in olay tabanlı (event-driven) yapısını kullanmanızı sağlar. Burada init kancası (hook), WordPress'in tüm çekirdek dosyaları yüklendikten sonra çalışır.
WordPress Temalarında PHP Kullanımı ve Şablon Hiyerarşisi
WordPress temaları, header.php, footer.php ve index.php gibi dosyalardan oluşan bir şablon hiyerarşisine sahiptir. Bir sayfayı dinamik hale getirmek için WordPress'in "Loop" (Döngü) yapısını kullanmalısınız.
if ( have_posts() ) :
while ( have_posts() ) : the_post();
echo '
' . get_the_title() . '
';
echo '' . get_the_content() . '';
endwhile;
else :
echo 'Icerik bulunamadi.';
endif;
Bu döngü, veritabanındaki gönderileri tek tek çeker ve ekrana yazdırır. the_post() fonksiyonu, her döngü adımında global post verisini günceller.
Veri Güvenliği: SQL Injection ve XSS Koruması
WordPress geliştirirken kullanıcıdan gelen verileri asla doğrudan veritabanına göndermemeli veya tarayıcıya yansıtmamalısınız. WordPress, bu amaçla $wpdb sınıfını ve güvenlik fonksiyonlarını sunar.
global $wpdb;
$kullanici_id = intval($_GET['id']); // Veriyi temizle (sanitize)
$sonuc = $wpdb->get_row( $wpdb->prepare(
"SELECT * FROM {$wpdb->prefix}users WHERE ID = %d",
$kullanici_id
) );
$wpdb->prepare() kullanımı, SQL Injection saldırılarını önlemek için zorunludur. %d ifadesi, verinin bir tamsayı olduğunu belirtir ve sorguyu güvenli hale getirir.
WordPress Geliştirme Yöntemleri Karşılaştırması
| Yöntem | Avantajı | Dezavantajı |
|---|---|---|
| Hazır Tema | Hızlı kurulum | Esneklik kısıtlı |
| Özel Tema | Tam kontrol | Yüksek geliştirme süresi |
| Headless WP | Modern JS framework uyumu | Karmaşık yapı |
Güvenlik Uyarısı: Üretim ortamında (production) hata ayıklama (debug) modunu mutlaka kapatın.
wp-config.phpdosyasındadefine( 'WP_DEBUG', false );satırının olduğundan emin olun. Aksi takdirde sunucu yollarınız ve hatalarınız dışarıdan görülebilir.
Sıkça Sorulan Sorular
WordPress'te veritabanı öneki (prefix) neden değiştirilmeli?
Varsayılan wp_ öneki, SQL Injection saldırılarında hedefin tahmin edilmesini kolaylaştırır. Kurulum sırasında bunu benzersiz bir değerle (örneğin site123_) değiştirmek ek güvenlik sağlar.
WordPress'te XSS saldırılarını nasıl önlerim?
Kullanıcıdan alınan verileri ekrana basmadan önce esc_html(), esc_url() veya esc_attr() gibi WordPress'in kendi temizleme fonksiyonlarını kullanarak çıktıyı filtrelemelisiniz.
Neden PHP 8.2 kullanmalıyım?
PHP 8.2, önceki sürümlere göre çok daha hızlıdır ve "JIT" (Just-In-Time) derleme gibi özelliklerle WordPress'in arka plan süreçlerini optimize eder.
WordPress'te özel içerik türleri (CPT) nasıl oluşturulur?
register_post_type() fonksiyonunu kullanarak, standart gönderi ve sayfalardan bağımsız yeni içerik yapıları oluşturabilirsiniz.
Eklenti çakışmaları nasıl debug edilir?
Tüm eklentileri devre dışı bırakıp tek tek aktif ederek veya WP_DEBUG_LOG özelliğini açarak wp-content/debug.log dosyasındaki hataları inceleyebilirsiniz.
WordPress Performans Optimizasyonu ve Transients API Kullanımı
WordPress sitelerinin hızı, hem kullanıcı deneyimi hem de SEO (Arama Motoru Optimizasyonu) performansı için kritik bir faktördür. Veritabanı sorgularının optimize edilmemesi,
Sonuç
WordPress'i profesyonel düzeyde kullanmak ve geliştirmek, PHP bilgisi ve WordPress API'lerine hakimiyet gerektirir. Bu rehberde öğrendiğiniz güvenlik pratikleri, veritabanı yönetimi ve şablon yapısı, projelerinizin temelini oluşturacaktır. Bir sonraki adım olarak, WordPress REST API kullanarak verilerinizi modern JavaScript kütüphaneleri (React veya Vue.js gibi) ile nasıl yöneteceğinizi araştırmanızı öneririm. Sürekli öğrenme ve temiz kod yazma disiplini, sizi başarılı bir WordPress geliştiricisi yapacaktır.


Yorumlar (0)
Yorum Yaz