İçindekiler
WordPress sitelerinde en sık duyduğum şikâyetlerden biri şudur: "Temayı güncelledim, bütün değişikliklerim gitti." Sebebi basittir. Tema güncellendiğinde WordPress temanın klasörünü yeni sürümle tamamen değiştirir. Temanın dosyalarına doğrudan eklediğiniz her satır da o klasörle birlikte silinir.
Alt tema (child theme) bu sorunun standart çözümüdür.
Alt tema nedir?
Alt tema, başka bir temanın (ana tema, parent theme) üzerine kurulan küçük bir temadır. WordPress önce alt temanın dosyalarına bakar. Aradığı dosya orada yoksa ana temadakini kullanır. Böylece yalnızca değiştirmek istediğiniz dosyaları alt temaya koyarsınız, geri kalan her şey ana temadan gelir.
Ana tema güncellendiğinde alt temaya dokunulmaz. Değişiklikleriniz korunur, ana temanın güvenlik ve hata düzeltmeleri de size ulaşır.
Alt tema oluşturmak
Diyelim ki ana temanızın klasör adı kurumsal. wp-content/themes/ altında yeni bir klasör açın: kurumsal-child.
1. style.css
/*
Theme Name: Kurumsal Child
Template: kurumsal
Version: 1.0
*/
En önemli satır Template: satırıdır. Buraya ana temanın görünen adı değil, klasör adı yazılır. Yanlış yazılırsa WordPress alt temayı "bozuk" olarak gösterir.
2. functions.php
<?php
add_action( 'wp_enqueue_scripts', function () {
wp_enqueue_style(
'kurumsal-child',
get_stylesheet_uri(),
[],
wp_get_theme()->get( 'Version' )
);
} );
Eskiden alt temanın içinden ana temanın stil dosyasını da elle yüklemek gerekirdi. Günümüzde iyi yazılmış temaların çoğu kendi stilini zaten yükler. Siteyi açtığınızda ana temanın stilleri eksikse, aynı fonksiyona ana temanın stilini de ekleyin:
wp_enqueue_style( 'kurumsal-parent', get_template_directory_uri() . '/style.css' );
İki fonksiyon arasındaki farka dikkat edin: get_template_directory_uri() ana temanın, get_stylesheet_directory_uri() ise alt temanın klasörünü verir.
3. Etkinleştirin
Görünüm → Temalar sayfasından alt temayı etkinleştirin. WP-CLI ile:
wp theme activate kurumsal-child
Not: Bazı tema ayarları (Özelleştirici'deki logo, renkler, menü konumları) temaya bağlı saklanır. Alt temaya geçtiğinizde bunları bir kez yeniden ayarlamanız gerekebilir. Bu yüzden alt temaya, sitenin ilk kurulumunda geçmek en kolayıdır.
Neleri değiştirebilirsiniz?
CSS: Alt temanın style.css dosyasına yazdığınız kurallar ana temanın stillerinden sonra yüklenir ve onları geçersiz kılar.
Şablon dosyaları: Ana temadaki footer.php dosyasını alt temaya kopyalayıp düzenlerseniz, WordPress artık alt temadakini kullanır. Aynı şey single.php, header.php ve template-parts/ altındaki dosyalar için de geçerlidir. Klasör yapısını korumayı unutmayın.
functions.php: Bu dosya bir istisnadır. Alt temanın functions.php dosyası ana temanınkini değiştirmez; her ikisi de yüklenir. Önce alt temanınki, sonra ana temanınki. Bu yüzden ana temada tanımlı bir fonksiyonu aynı adla yeniden tanımlamaya çalışırsanız ölümcül hata alırsınız. Ana temanın davranışını değiştirmenin doğru yolu kancaları (hook) kullanmaktır:
// Ana temanın eklediği bir eylemi kaldırmak
add_action( 'after_setup_theme', function () {
remove_action( 'kurumsal_footer', 'kurumsal_credit_text' );
}, 20 );
Dikkat edilecekler
- Bütün şablon dosyalarını kopyalamayın. Yalnızca değiştirdiğiniz dosyaları kopyalayın. Kopyaladığınız her dosya, ana temanın o dosyadaki güncellemelerini almaz. Ana tema bir güvenlik düzeltmesini kopyaladığınız
header.phpdosyasına yaptıysa, siz o düzeltmeden yararlanamazsınız. - Kopyaladığınız dosyaları kaydedin. Hangi dosyaları neden değiştirdiğinizi küçük bir not dosyasında tutun. Ana temanın büyük bir güncellemesinden sonra bu dosyaları karşılaştırmanız gerekebilir.
- Basit CSS değişiklikleri için alt tema şart değil. Yalnızca birkaç satır CSS ekleyecekseniz Özelleştirici'deki "Ek CSS" alanı da güncellemelerden etkilenmez.
Blok temalarda durum
Twenty Twenty-Five gibi blok (FSE) temalarda tasarım değişikliklerinin çoğu Site Düzenleyicisi'nden yapılır ve veritabanında saklanır. Bu değişiklikler tema güncellemesinde kaybolmaz. Yine de özel kod, kendi theme.json ayarlarınız ya da şablon dosyalarınız varsa blok temalarda da alt tema kullanılabilir. Alt temadaki theme.json dosyası ana temanınkiyle birleştirilir; yalnızca değiştirmek istediğiniz ayarları yazmanız yeterlidir.
Alt tema oluşturmak beş dakikanızı alır. Karşılığında tema güncellemeleri korkulan bir olay olmaktan çıkar, tek tıkla yapılan sıradan bir işe dönüşür.
Yorumlar
Henüz yorum yok. İlk yorumu siz yazın.