Child theme varolan temanızı temsil eden bir temadır. Temanızdaki tüm özellikler çalışır ama extra kodlar ekleyerek tüm düzenlemeleri burada yapacağız.
CSS
içinde style.css ve functions.php olur. Style.css’e yazdığınız kodlar temanın style.css’inden sonra yüklendiği için buraya yazdığınız odlar temanın üzerine geçer. Tüm CSS değişikliklerini burda veya yeni bir CSS Enquee ederek bu dosyada yapabilirsiniz.
functions
Functions.php’ye ise kendi orjinal tema functions.php üzerine extra olarak eklenir. Buraya action, hook, custom post type gibi kodlar eklenebilir.
Tema dosyalarını overwrite etme
Orjinal temanızda page.php sayfası var diye düşünelim. Eğer child theme içinde de page.php varsa WordPress chld theme’deki page.php yi görür. Style.css ve functions.php gibi extra değildir. O sayfanın yerine geçer.
Bu sayede action ve filter kullanmayan temaların içerisindeki değerleri böyle değiştirebiliyoruz.
Kaliteli temalar bir sayfayı oldukça çok dosya’ya böler ve get_template_part ile o sayfanın öğelerini teker teker çekerler. Örneğin:
Portfolio.php içinde şu şekilde parçalara ayrılır.
get_template_part("portolio/header");
get_template_part("portolio/content");
get_template_part("portolio/sidebar");
get_template_part("portolio/footer");
Ve böylece content’i değiştirmek istersek child theme’de
portfolio klasoru olusturuyoruz. ve icine content.php koyuyoruz. orjinal dosyamızdaki tüm kodları alıp değiştirceğimiz yeri değiştiriyoruz.
Burda değiştirdiğiniz yeri ve temanın o andaki versiyonunu yazmanız ilerde bu sayfayı temanın yeni versiyonuyla güncelleyeceğinizde lazım olur.
Örneğin:
<div class="woocommerce-billing-fields">
<?php if ( wc_ship_to_billing_address_only() && WC()->cart->needs_shipping() ) : ?>
<h3><?php esc_html_e( 'Billing & Shipping', 'woocommerce' ); ?></h3>
<?php else : ?>
<h3><?php esc_html_e( 'Billing details', 'woocommerce' ); ?></h3>
<?php endif; ?>
<?php do_action( 'woocommerce_before_checkout_billing_form', $checkout ); ?>
// Porto Theme 1.3.4
// AMC Customized - START
<div class="woocommerce-billing-fields__field-wrapper">
<?php
$fields = $checkout->get_checkout_fields( 'billing' );
foreach ( $fields as $key => $field ) {
woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
}
?>
</div>
// AMC Customized - FINISH