Ana temanın style.css veya single.php dosyasını doğrudan düzenlediğinizde, tema güncellemesi bu değişiklikleri üzerine yazabilir. Child theme, ana temanın özelliklerini kullanıp belirli düzenlemeleri ayrı bir tema dizininde tutmaya yardım eder. Böylece küçük bir özel değişiklik için bütün temayı kopyalamak zorunda kalmazsınız. Bununla birlikte child theme, ana temayla uyumluluğun sonsuza kadar korunacağı garantisini vermez.

Önce gerçekten dosya değişikliği gerekip gerekmediğine bakın

Tema panelinde bir seçenek, blok düzenleyicide bir şablon veya Ek CSS alanında yapılabilecek basit bir düzenleme varsa önce bunları değerlendirin. Her renk veya boşluk değişikliği için PHP şablonu kopyalamak bakım yükünü artırır. Child theme, mevcut araçların karşılamadığı ve kod düzeyinde saklamak istediğiniz düzenlemelerde anlamlıdır.

Bu örnek klasik PHP teması içindir. Blok temaların şablonları ve editörde saklanan düzenlemeleri farklı bir iş akışına sahiptir. Temanın hangi yapıyı kullandığını anlamadan internetteki tek bir dosya listesini aynen uygulamayın.

Temel dosyaları oluşturun

wp-content/themes altında örneğin ornek-child dizini oluşturun. Child theme’in style.css başlığındaki Template değeri, ana temanın gerçek klasör adıyla aynı olmalıdır. Görünen tema adı ile klasör adı farklı olabilir.

/*
Theme Name: Örnek Child
Template: ornek-parent
Version: 1.0.0
*/

Bu başlık ilişkiyi kurar; stillerin doğru yüklenmesi ayrı konudur. Ana temanın stylesheet’i zaten enqueue edip etmediğini inceleyin. Ana CSS’yi ikinci kez yüklemek gereksiz istek ve sıra problemi oluşturabilir. Child CSS’yi ana stilin handle’ına bağımlı olacak şekilde eklemek, sıra yönetimini açık hâle getirir.

Stili doğru sırayla yükleyin

Aşağıdaki örnekte parent-style, ana temanın önceden kaydettiği gerçek stil handle’ını temsil eder. Kendi temanızın adıyla değiştirmeden kullanmayın. Bu kod child theme functions.php dosyasına eklenebilir.

<?php
add_action('wp_enqueue_scripts', function () {
    wp_enqueue_style(
        'ornek-child-style',
        get_stylesheet_uri(),
        ['parent-style'],
        wp_get_theme()->get('Version')
    );
}, 20);

Dosya sürümünü değiştirmek tarayıcının eski CSS’yi kullanmasını azaltmaya yardımcı olur. Buna rağmen CDN veya sayfa önbelleği varsa onu da temizlemek gerekebilir. Ekrandaki sonucun eski dosyadan gelip gelmediğini kaynak bağlantısındaki sürüm bilgisinden kontrol edin.

functions.php kopyası oluşturmayın

Child theme’in functions.php dosyası ana dosyanın yerine geçmez; ikisi de yüklenir. Ana dosyanın tamamını kopyalamak aynı isimli fonksiyonların tekrar tanımlanmasına ve hataya yol açabilir. Sadece eklemek istediğiniz hook veya özel fonksiyonları yazın. Ana tema uygun hook sunuyorsa şablon kopyalamadan değişiklik yapma seçeneğini değerlendirin.

Bir şablonu child theme’e kopyaladığınızda ilgili şablonun sorumluluğunu da almış olursunuz. Ana tema sonraki sürümde o dosyaya güvenlik, erişilebilirlik veya tasarım düzeltmesi eklerse sizin eski kopyanız otomatik güncellenmez. Hangi dosyaları değiştirdiğinizi kısa bir listede tutun.

Güncelleme provası yapın

Ana temayı test ortamında güncelleyin. Ana sayfa, yazı, kategori ve mobil görünümü karşılaştırın. Çocuk temada kullanılan CSS seçicilerinin yeni HTML yapısıyla hâlâ eşleştiğini kontrol edin. Bir sınıf değiştiğinde özel stilinizin uygulanmaması, dosyanın silindiği anlamına gelmez; eşleşme değişmiş olabilir.

Ne zaman ayrı eklenti daha uygun?

Tema değişse de kalması gereken içerik türleri, iş kuralları veya bağımsız araçlar için eklenti yaklaşımı düşünülebilir. Görsel şablon değişikliği ile işlevsel veri yönetimini aynı yerde toplamak gelecekte taşımayı zorlaştırabilir. Child theme’i küçük ve amaçlı tutmak, hangi düzenlemenin neden eklendiğini açık bırakır.

Kaynaklar: WordPress — Child Themes, Including Assets.