WordPress

    WordPress Child (Alt) Tema Nasil Olusturulur

    Guncellemeden etkilenmeyen ozellestirme icin child tema olusturma

    13 dk okuma Güncellendi: 10 Temmuz 2026

    WordPress'te bir temayı kendinize göre biçimlendirmek isteyip de doğrudan tema klasöründeki style.css veya functions.php dosyasına dokunduysanız, büyük ihtimalle acı bir dersle tanışmışsınızdır: tema bir güncelleme aldığı anda yaptığınız tüm değişiklikler tek seferde silinir. Saatlerce uğraştığınız renk düzeni, eklediğiniz kod parçaları, ince ayarını yaptığınız CSS kuralları... hepsi ana temanın yeni sürümü indiğinde üzerine yazılıp yok olur. Bu, WordPress dünyasında yeni başlayanların en sık düştüğü ve en pahalıya patlayan hatalardan biridir.

    İşte tam bu sorunu çözmek için child tema (alt tema) yapısı vardır. Alt tema, ana temanın tüm görünüm ve işlevlerini miras alan, ama sizin özelleştirmelerinizi ayrı ve güvenli bir klasörde saklayan ince bir katmandır. Ana temayı gönül rahatlığıyla güncellersiniz; değişiklikleriniz ise alt temada dokunulmadan durur. Bu rehberde child temanın neden hayati olduğunu, dosya devralma (template hierarchy) mantığının nasıl işlediğini, style.css ile functions.php'yi sıfırdan nasıl oluşturacağınızı, tema şablonlarını nasıl güvenle override edeceğinizi ve alt temayı nasıl etkinleştireceğinizi adım adım, komut ve kod örnekleriyle göstereceğim. Sonunda bir eklentiyle saniyeler içinde alt tema üretmenin pratik yoluna da değineceğim.

    Child Tema Nedir ve Neden Gerekir?#

    Child tema, bir "ana tema"ya (parent theme) bağlı çalışan ikinci bir temadır. Kendi başına eksiktir; tek görevi, ana temanın üzerine oturup yalnızca değiştirmek istediğiniz parçaları geçersiz kılmaktır. Ana tema arabanın tamamıysa, child tema onun üzerine taktığınız spoiler ve jant setidir: arabayı baştan üretmezsiniz, sadece istediğiniz yerine dokunursunuz.

    Buradaki asıl kazanç güncelleme kalıcılığıdır. WordPress temaları güvenlik yamaları, uyumluluk düzeltmeleri ve yeni özellikler için düzenli güncelleme alır. Güncelleme geldiğinde ana temanın tüm dosyaları yenileriyle değiştirilir. Değişikliklerinizi doğrudan ana temaya yaptıysanız burada kaybedersiniz. Alt temada yaptıysanız, alt tema hiç dokunulmadan yerinde kalır ve özelleştirmeleriniz yeni sürümün üzerinde çalışmaya devam eder. İki yaklaşımı yan yana koyalım:

    ÖlçütDoğrudan Ana Temayı DüzenlemekChild Tema Kullanmak
    Güncelleme sonrası değişikliklerSilinirKorunur
    Geri dönüş kolaylığıZor, elle geri alınırAlt temayı devre dışı bırak, biter
    Kod izolasyonuKarışık, ana tema içindeAyrı klasörde temiz
    RiskYüksekDüşük
    Önerilen mi?HayırEvet

    Alt temanın işi yalnızca kod özelleştirmeleridir. Yeni bir tema seçme, ücretsiz ve premium karşılaştırması gibi konular ayrı bir başlıktır; henüz temanıza karar vermediyseniz önce WordPress tema seçimi rehberine göz atmanızı öneririm. Doğru ana temayı seçtikten sonra buraya dönüp onun üzerine alt temanızı kurabilirsiniz.

    Child Tema Ne Zaman Gerekir, Ne Zaman Gerekmez?#

    Her özelleştirme alt tema gerektirmez. WordPress'in modern temaları, panel içinden renk, yazı tipi, düzen ve başlık ayarlarını değiştirmenize izin verir; bu ayarlar veritabanında saklanır ve güncellemeden etkilenmez. Alt temaya yalnızca dosya düzeyinde, yani kodla müdahale ettiğinizde ihtiyaç duyarsınız.

    Alt temaya ihtiyaç duyacağınız tipik durumlar:

    • functions.php'ye kalıcı PHP kodu eklemek (kısa kod tanımlamak, kanca kullanmak, gereksiz özellikleri kapatmak).
    • Temanın CSS'ini panelin "Ek CSS" kutusundan taşan ölçüde derinlemesine değiştirmek.
    • header.php, footer.php, single.php gibi şablon dosyalarının HTML yapısını değiştirmek.
    • WooCommerce şablonlarını mağazanıza göre uyarlamak.

    Alt temaya gerek olmayan durumlar da vardır: tema panelindeki hazır ayarlarla yetiniyorsanız, yalnızca birkaç satır CSS ekleyecekseniz (bunun için Görünüm > Özelleştir > Ek CSS kutusu yeterlidir) veya kodlarınızı temadan bağımsız bir "site-specific" eklentide tutmayı tercih ediyorsanız alt tema şart değildir. Genel kural şudur: değişikliğiniz bir tema dosyasına dokunuyorsa alt tema kullanın, dokunmuyorsa gerekmez.

    Dosya Devralma (Template Hierarchy) Nasıl Çalışır?#

    Alt temanın sihri, WordPress'in dosyaları arama sırasında gizlidir. WordPress bir sayfayı oluştururken belirli bir şablon dosyasına ihtiyaç duyar (örneğin bir yazı için single.php, altbilgi için footer.php). Bu dosyayı ararken önce alt temaya, sonra ana temaya bakar. Kural nettir:

    • İstenen dosya alt temada varsa, WordPress onu kullanır ve ana temadakini yok sayar.
    • Alt temada yoksa, ana temadaki karşılığına düşer.

    Bu "önce çocuğa bak" davranışı sayesinde, ana temadan yalnızca değiştirmek istediğiniz dosyayı alt temaya kopyalarsınız; gerisi ana temadan gelmeye devam eder. Örneğin sadece altbilgiyi değiştirecekseniz footer.php'yi alt temaya kopyalar, düzenlersiniz; header.php, index.php ve diğer her şey ana temadan çekilir.

    Tek istisna functions.php'dir. Diğer şablonların aksine functions.php override edilmez; alt temanın ve ana temanın functions.php dosyalarının ikisi de yüklenir. Üstelik alt temanın functions.php'si ana temanınkinden önce çalışır. Bu yüzden alt temada functions.php oluşturmak, ana temanınkini silmek anlamına gelmez; ona kod eklemek anlamına gelir. Aşağıdaki tablo hangi dosyanın nasıl davrandığını özetliyor:

    DosyaDavranışSonuç
    style.cssHer ikisi de yüklenebilir (enqueue ederseniz)Alt tema CSS'i sonra yüklenir, ana temayı ezer
    functions.phpİkisi de çalışırAlt tema önce, ana tema sonra
    header.php, footer.php, single.php vb.Override edilirAlt temadaki varsa o kullanılır
    Resim, JS gibi varlıklarYol belirtilene bağlıİstediğiniz temadan çağırırsınız

    Bu mantığı kavradığınızda alt tema artık bir gizem olmaktan çıkar; yalnızca "hangi dosyayı nereye koyarsam ne olur" sorusuna dönüşür.

    Adım Adım Child Tema Oluşturma#

    Şimdi elle, sıfırdan bir alt tema kuralım. Örnek olarak ana temamızın klasör adının astra olduğunu varsayacağım; siz kendi temanızın klasör adını kullanın (klasör adını Görünüm > Tema Dosya Düzenleyici'den ya da FTP ile wp-content/themes/ içine bakarak öğrenebilirsiniz).

    Alt temalar da her tema gibi wp-content/themes/ altında yaşar. SSH erişiminiz varsa klasörü ve dosyaları komut satırından hızlıca oluşturabilirsiniz:

    cd wp-content/themes
    mkdir astra-child
    cd astra-child
    touch style.css functions.php
    

    SSH kullanmıyorsanız aynı işi cPanel Dosya Yöneticisi ya da bir FTP istemcisiyle de yapabilirsiniz: wp-content/themes/ içinde astra-child adında bir klasör açıp içine style.css ve functions.php dosyalarını oluşturun. Klasör adında Türkçe karakter ve boşluk kullanmayın; küçük harf ve tire yeterlidir.

    Bir alt temanın çalışması için teknik olarak yalnızca iki dosya zorunludur: doğru başlık bloğunu içeren bir style.css ve ana temanın stilini yükleyen bir functions.php. İsteğe bağlı olarak bir de screenshot.png (880x660 piksel önerilir) ekleyebilirsiniz; bu, temalar ekranında alt temanızın önizleme görselini oluşturur. Sıradaki iki bölümde bu iki dosyayı doğru şekilde dolduracağız.

    style.css'te Template Başlığı ve Zorunlu Alanlar#

    WordPress bir klasörü tema olarak tanıması için style.css dosyasının en başında özel bir yorum bloğu arar. Alt temada bu blok, sıradan bir temadan tek bir kritik satırla ayrılır: Template. Bu satır, alt temanın hangi ana temaya bağlı olduğunu söyler.

    style.css dosyasının en tepesine şunu yazın:

    /*
     Theme Name:   Astra Child
     Theme URI:    https://ornek.com/astra-child
     Description:  Astra temasi icin alt tema
     Author:       Adiniz
     Template:     astra
     Version:      1.0.0
     Text Domain:  astra-child
    */
    
    /* Ozel CSS kurallariniz bu satirin altina gelecek */
    

    Buradaki alanların anlamları:

    • Theme Name — Temalar ekranında görünecek isim. Serbestçe belirleyebilirsiniz.
    • Template — En önemli satır. Ana temanın klasör adıyla birebir aynı olmak zorundadır. Ana tema astra klasöründeyse burada astra yazar; Astra ya da astra-theme yazarsanız WordPress bağı kuramaz ve alt tema bozuk görünür. Büyük/küçük harf duyarlıdır.
    • Version — Alt temanızın sürüm numarası. Enqueue işleminde stil dosyasının sürümü olarak da kullanabilirsiniz.
    • Text Domain — Çeviri dosyalarınızı bağlamak isterseniz kullanılır; başlangıçta zorunlu değildir.

    Template satırındaki en yaygın hata, ana temanın görünen adını (örneğin "Astra") değil de klasör adını (astra) yazmanız gerektiğini karıştırmaktır. Bir tema paketlerken üreticinin verdiği görünen ad ile klasör adı farklı olabilir; her zaman wp-content/themes/ içindeki gerçek klasör adını esas alın.

    functions.php ile Parent Stilini Enqueue Etme#

    Alt temanız oluştuğunda tek başına hiçbir CSS taşımaz; ana temanın stilini de otomatik yüklemez. Eğer bu adımı atlarsanız site tamamen stilsiz, çırılçıplak HTML olarak görünür. Bu yüzden functions.php içinde ana temanın stilini düzgün biçimde "enqueue" etmemiz gerekir.

    Eskiden bu iş style.css içine @import yazarak yapılırdı; bu yöntem yavaştır ve artık önerilmez. Doğru yol, WordPress'in wp_enqueue_scripts kancasını kullanmaktır. functions.php dosyanıza şunu ekleyin:

    <?php
    add_action( 'wp_enqueue_scripts', 'astra_child_stilleri' );
    
    function astra_child_stilleri() {
        // 1) Once ana temanin stilini yukle
        wp_enqueue_style(
            'astra-parent-style',
            get_template_directory_uri() . '/style.css'
        );
    
        // 2) Sonra alt temanin kendi style.css dosyasini yukle
        wp_enqueue_style(
            'astra-child-style',
            get_stylesheet_directory_uri() . '/style.css',
            array( 'astra-parent-style' ), // ana stile bagimli
            wp_get_theme()->get( 'Version' )
        );
    }
    

    Bu koddaki iki fonksiyon arasındaki farkı bilmek çok önemli, çünkü çoğu hatanın kaynağı burasıdır:

    • get_template_directory_uri() her zaman ana temanın klasörünü işaret eder.
    • get_stylesheet_directory_uri() ise etkin temanın, yani alt temanın klasörünü işaret eder.

    Yükleme sırası da bilinçlidir. Önce ana temanın stili, sonra alt temanın stili gelir; böylece alt temadaki kurallar CSS'in "sonra gelen kazanır" doğası gereği ana temanınkileri ezer. Üçüncü parametredeki array( 'astra-parent-style' ) bağımlılık tanımı, WordPress'e "alt tema stilini ana temadan sonra yükle" der ve sırayı garanti eder.

    Bazı modern temalar stillerini tek style.css yerine birden çok dosyada tutar veya kendi enqueue mantığını çalıştırır. Böyle temalarda çoğu zaman ana temanın stili zaten yüklenir ve siz yalnızca alt temanın style.css'ini enqueue etmeniz yeterli olur. Emin değilseniz üreticinin dokümantasyonundaki "child theme" bölümüne bakın; birçok popüler tema kendi önerdiği enqueue kodunu belgelerinde paylaşır. Kod ekleme işini kolaylaştıran yardımcı eklentiler için WordPress eklenti önerileri yazımızdaki kod parçacığı yönetimi bölümü de işinize yarar.

    Tema Dosyalarını Override Etmek#

    CSS ve functions.php çoğu özelleştirme için yeterlidir, ama bazen bir şablonun HTML yapısını değiştirmeniz gerekir; örneğin altbilgideki telif metnini kaldırmak, tek yazı sayfasına özel bir düzen eklemek ya da başlığa bir öğe koymak. Bunun için o şablonu ana temadan alt temaya kopyalar ve orada düzenlersiniz.

    Kural basittir: ana temadaki dosyayı aynı adla ve aynı göreli konumda alt temaya kopyalayın. WordPress dosya devralma sırası gereği alt temadaki sürümü kullanacaktır. Örneğin altbilgiyi değiştirmek isterseniz:

    # Ana temadaki footer.php'yi alt temaya kopyala
    cp wp-content/themes/astra/footer.php wp-content/themes/astra-child/footer.php
    

    Artık wp-content/themes/astra-child/footer.php dosyasını düzenleyebilirsiniz; ana temanın footer.php'sine hiç dokunmazsınız ve güncelleme geldiğinde değişikliğiniz korunur. WooCommerce gibi eklentilerin şablonlarını override etmek de benzer mantıkla çalışır, ama alt klasör yapısına dikkat etmek gerekir:

    # WooCommerce'in urun sekmelerini ozellestirmek icin
    mkdir -p wp-content/themes/astra-child/woocommerce/single-product/tabs
    cp wp-content/plugins/woocommerce/templates/single-product/tabs/tabs.php \
       wp-content/themes/astra-child/woocommerce/single-product/tabs/tabs.php
    

    Override yaparken iki noktaya dikkat edin. Birincisi, kopyaladığınız şablonun ana tema güncellendiğinde geride kalabileceğidir: ana tema o dosyaya yeni bir özellik eklerse, sizin eski kopyanız o özelliği almaz. Bu yüzden yalnızca gerçekten değiştirmeniz gereken dosyaları kopyalayın; gereksiz yere on tane şablonu alt temaya taşımayın. İkincisi, mümkün olduğunda bir dosyayı bütünüyle override etmek yerine kancalarla (hook/filter) müdahale etmeyi tercih edin; kanca kullanımı güncellemelere karşı daha dayanıklıdır. Yaptığınız her değişikliği canlıya almadan önce bir hazırlık (staging) ortamında denemek de büyük risk azaltır.

    Child Temayı Etkinleştirme#

    İki zorunlu dosyayı (doğru başlıklı style.css ve enqueue kodlu functions.php) hazırladıktan sonra alt temayı devreye almak çok basittir:

    1. WordPress panelinde Görünüm > Temalar ekranına gidin.
    2. Listede "Astra Child" temasını görürsünüz. screenshot.png eklediyseniz önizleme görseliyle, eklemediyseniz gri bir kutuyla görünür.
    3. Üzerine gelin ve "Etkinleştir" butonuna tıklayın.

    Etkinleştirdikten sonra sitenizi açıp kontrol edin. Site ana temayla neredeyse aynı görünmelidir; çünkü alt tema henüz görünümü değiştiren bir kural içermiyor, yalnızca ana temayı miras alıyor. Eğer site stilsiz, düz metin gibi görünüyorsa bu, ana temanın stilinin yüklenmediği anlamına gelir; functions.php'deki enqueue kodunuzu ve style.css başlığındaki Template satırını iki kez kontrol edin. En sık iki hata şudur: Template değerinin ana temanın klasör adıyla birebir eşleşmemesi ve enqueue fonksiyonunda get_template_directory_uri ile get_stylesheet_directory_uri fonksiyonlarının karıştırılması.

    Bir uyarı: alt temaya geçtiğinizde menü konumları ve widget yerleşimleri sıfırlanabilir, çünkü WordPress bunları tema bazında saklar. Menülerinizi Görünüm > Menüler ekranından yeni temanın konumlarına yeniden atamanız gerekebilir. Bu tamamen normaldir ve tek seferlik bir iştir.

    Eklenti ile Hızlı Child Tema Oluşturma#

    Kodla uğraşmak istemiyor ya da işi hızlandırmak istiyorsanız, alt temayı sizin için üreten eklentiler var. En bilineni "Child Theme Configurator" ve "Create Block Theme" (blok temalar için) gibi araçlardır. Bu eklentiler ana temayı seçmenizi ister, doğru Template başlığını ve enqueue kodunu otomatik yazar, hatta bazı şablonları tek tıkla alt temaya kopyalayabilir.

    Eklentiyle çalışırken izlenecek adımlar genellikle şöyledir:

    1. Eklentiyi kurup etkinleştirin (Eklentiler > Yeni Ekle).
    2. Eklentinin ayar ekranında "Create a new Child Theme" seçeneğini işaretleyin.
    3. Ana temanızı (parent theme) listeden seçin.
    4. Analiz butonuna basın; eklenti temanızın stil yapısını inceler ve doğru enqueue yöntemini kendisi belirler.
    5. "Create New Child Theme" ile alt temayı oluşturun, ardından etkinleştirin.

    Hangi yolu seçeceğiniz tercihinize kalmış. Elle oluşturmak size yapının nasıl işlediğini öğretir ve tam kontrol verir; tek bir alt temayı bir kez kuracaksanız komut satırı ya da FTP ile beş dakikada halledebilirsiniz. Eklenti ise özellikle çok sayıda şablonu override edecekseniz veya kod yazmaya hiç mesafeliyseniz zaman kazandırır. Hangi yöntemi kullanırsanız kullanın, sonuç aynı iki zorunlu dosyaya (style.css + functions.php) dayanır; eklentiler yalnızca bu dosyaları sizin yerinize yazar.

    Küçük bir tavsiye: alt teması olan bir eklentiyi kaldırırken dikkatli olun. Eklenti alt temayı bir kez oluşturduktan sonra alt tema kendi başına, eklentiden bağımsız çalışır; dolayısıyla oluşturma işi bittikten sonra eklentiyi güvenle silebilirsiniz. Ancak override ettiğiniz dosyaları da eklentiyle yönetiyorsanız, eklentiyi kaldırmadan önce o dosyaların alt tema klasöründe fiziksel olarak durduğundan emin olun.

    Sıkça Sorulan Sorular#

    Child tema olmadan doğrudan temayı düzenlersem ne olur?#

    Değişiklikleriniz ana tema bir sonraki güncellemesini aldığında tamamen silinir. WordPress güncellemede ana temanın tüm dosyalarını yenileriyle değiştirdiği için style.css ya da functions.php içine yazdığınız her şey kaybolur. Küçük bir CSS düzeltmesi için Görünüm > Özelleştir > Ek CSS kutusunu kullanabilirsiniz, ancak kod düzeyinde kalıcı değişiklik yapacaksanız mutlaka child tema oluşturmalısınız.

    Blok temada (FSE) da child tema kullanabilir miyim?#

    Evet, ama ihtiyaç ve yöntem biraz farklıdır. Tam site düzenleme (Full Site Editing) yaklaşımında görünüm değişikliklerinin çoğunu blok editöründen görsel olarak yapar ve bu ayarlar veritabanında saklanır, yani güncellemeden etkilenmez. Bir blok temanın şablonlarını (HTML dosyalarını) ya da theme.json ayarlarını kodla değiştirmek isterseniz yine alt tema kurabilirsiniz; bu tür temalar için "Create Block Theme" eklentisi child tema oluşturmayı ve değişiklikleri dosyaya kaydetmeyi kolaylaştırır.

    functions.php dosyamı alt temada oluşturursam ana temanınki silinir mi?#

    Hayır, silinmez. Diğer şablon dosyalarının aksine functions.php override edilmez; alt temanın ve ana temanın functions.php dosyalarının ikisi de yüklenir. Üstelik alt temanınki ana temanınkinden önce çalışır. Dolayısıyla alt temada functions.php oluşturmak, ana temanın fonksiyonlarını yok etmek değil, onların üzerine kendi kodunuzu eklemek demektir; ana temadaki tüm işlevler çalışmaya devam eder.

    Sitem child temayı etkinleştirdikten sonra stilsiz görünüyor, neden?#

    Bu neredeyse her zaman ana temanın stilinin yüklenmediğini gösterir. İki olası nedeni kontrol edin. Birincisi, functions.php içindeki enqueue kodunuz eksik ya da hatalı olabilir; ana temanın style.css'ini get_template_directory_uri() ile yüklediğinizden emin olun. İkincisi, style.css başlığındaki Template satırı ana temanın klasör adıyla birebir eşleşmiyor olabilir; büyük/küçük harf dahil tam eşleşme şarttır. Bu iki noktayı düzeltince site normale döner.

    Aynı ana tema için birden fazla child tema yapabilir miyim?#

    Teknik olarak birden fazla alt tema oluşturabilirsiniz, fakat aynı anda yalnızca biri etkin olabilir. Bu, örneğin bir tasarımı denemek için ikinci bir alt tema hazırlayıp test etmek istediğinizde işe yarar. Yine de günlük kullanımda tek bir alt tema tutmak en temiz yaklaşımdır; kullanmadığınız pasif temaları (ana ya da alt) sitede bırakmak güvenlik açısından da önerilmez, çünkü güncellenmeyen pasif temalar açık taşıyabilir.

    Child temamı bir sunucudan diğerine taşıyabilir miyim?#

    Evet, alt tema tıpkı normal bir tema gibi taşınabilir bir klasördür. wp-content/themes/astra-child klasörünü olduğu gibi kopyalayıp yeni sunucuda aynı dizine koymanız yeterlidir; tek koşul, aynı ana temanın da hedef sunucuda kurulu olmasıdır, çünkü alt tema ona bağımlıdır. Site taşıma işlemini bir bütün olarak yapıyorsanız temalar, eklentiler ve veritabanı birlikte gelir; bu süreçte alt temanız da otomatik olarak taşınmış olur.

    Kapanış#

    Child tema, WordPress'te kalıcı ve güvenli özelleştirmenin temel taşıdır. Özetle: kod düzeyinde her değişikliği alt temada yapın ki güncellemeler bir daha emeğinizi silmesin; style.css'in başındaki Template satırını ana temanın klasör adıyla birebir eşleştirin; ana temanın stilini functions.php içinde wp_enqueue_scripts ile düzgün yükleyin; yalnızca gerçekten değiştireceğiniz şablonları alt temaya kopyalayıp override edin; ve kod yazmak istemiyorsanız bir eklentiyle aynı yapıyı saniyeler içinde kurun. Bu birkaç kural, ana temayı korkusuzca güncelleyebildiğiniz sağlam bir zemin verir.

    Alt temanızı ve tüm özelleştirmelerinizi barındıracağınız zemin de en az kod kadar önemlidir. NVMe diskli, WordPress'e göre ayarlanmış bir WordPress hosting paketiyle işe başlayabilir, farklı ihtiyaçlar için hosting seçeneklerini karşılaştırabilir, daha fazla kaynak istediğinizde VDS sunucu çözümlerine geçebilirsiniz. Değişiklikleri canlıya almadan denemek için bir yedekleme planı kurmayı ihmal etmeyin; tema kurulumu, güncelleme ve bakım işlerini uzmanlara devretmek isterseniz WordPress bakım hizmetimiz de her zaman elinizin altında.

    wordpresschild-tematema

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.