WordPress ekosisteminde, alt temalar (subthemes), web sitelerinin özelleştirilmesi ve güncellenmesi için güvenli bir temeldir. Alt temalar, üst temanın (parent theme) tüm özelliklerini, stillerini ve şablon dosyalarını devralmanıza olanak tanır ve aynı zamanda bunları bağımsız bir katalogda değiştirebilmenizi sağlar. Bu, üst tema güvenlik yamaları veya işlevsel güncellemeler yayınladığında, özenle yazılmış özelleştirilmiş kodların silinmesi konusunda endişelenmeden tek bir tıklamayla tüm sitenin güncellenebilmesi anlamına gelir. Renkleri ayarlamak, düzeni değiştirmek veya karmaşık işlevler eklemek gibi işlemler için alt temalar kullanmak en iyi uygulamadır.
Neden alt konuların kullanılması gerekiyor?
Bir üst tema dosyasını doğrudan değiştirmek yüksek riskli bir işlemdir. Üst tema güncellendiğinde, yaptığınız tüm değişiklikler silinir ve bunları tekrar manuel olarak uygulamanız gerekir; bu süreç hatalara açıktır ve hem zaman hem de çaba gerektirir. Daha da önemlisi, ekip çalışmalarında veya web sitesinin gelecekteki taşınmalarında, açık ve net değişiklik kayıtlarının olmaması büyük sorunlara yol açabilir.
Alt temalar, bu sorunu “üstün gelme” (override) mekanizması ile çözer. WordPress bir sayfayı renderlarken, öncelikle ilgili şablon dosyasını alt tema dizininde arar. Eğer bulursa, alt temanın sürümünü kullanır; bulamazsa, otomatik olarak üst temanın sürümüne geri döner. Bu mekanizma sayesinde yalnızca ihtiyacınız olan kısımları değiştirebilir, diğer kısımların ise üst temanın güncellemelerinden ve bakımlarından yararlanmaya devam edebilirsiniz.
Tavsiye edilen okuma WordPress Tema Geliştirme Başlangıç Kılavuzu: İlk Temanızı Sıfırdan Oluşturun。
Ayrıca, alt konuların kullanılması WordPress tarafından resmi olarak önerilen bir uygulamadır; bu sayede kod düzenli ve sürdürülebilir kalır ve profesyonel geliştirmenin bir göstergesidir.
Alt konu oluşturmanın temel yapısı
Bir alt konu oluşturmak çok basittir; sadece iki temel dosyaya ihtiyacınız vardır: bir stil şeması ve bir fonksiyon dosyası. Öncelikle, /wp-content/themes/ Katalogda “Ana Konu Adı-Çocuk” adında yeni bir klasör oluşturulur, örneğin: twentytwentyfour-child。
Çekirdek stil şablonu dosyasını oluşturun.
Alt konunun çekirdeği, stil şeması dosyasıdır. style.cssBu dosya yalnızca CSS kurallarını içermekle kalmaz; daha da önemlisi, dosya başlığındaki yorumlar sayesinde WordPress’e bu dosyanın bir alt tema olduğunu ve hangi üst temaya ait olduğunu bildirir.
/*
Theme Name: Twenty Twenty-Four Child
Theme URI: https://example.com/twentytwentyfour-child/
Description: Twenty Twenty-Four Child Theme
Author: Your Name
Author URI: https://example.com
Template: twentytwentyfour
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfour-child
*/ Bunlar arasında,Template: Bu satır çok önemlidir; içerdiği değer, üst temanın klasör adıyla tam olarak aynı olmalı ve büyük/küçük harfler dikkate alınarak karşılaştırılmalıdır. İşte WordPress’in ebeveyn-çocuk ilişkisini tanımasının temelidir.
Bir üst tema stil dosyası içe aktarın.
Yalnızca yukarıda belirtilen dosyalar mevcut olduğunda, alt tema üst temanın stillerini yükleyemez. Alt temanın fonksiyon dosyasında gerekli değişiklikleri yapmanız gerekmektedir. functions.php Çince'de kullanılır. wp_enqueue_scripts Kancalar, üst temanın stil şemasının yüklenmesi için sıraya girmeyi sağlar.
Tavsiye edilen okuma Profesyonel web siteleri oluşturmak için gerekliler: WordPress temalarının geliştirilmesi ve özelleştirilmesi konusunda kapsamlı bir rehber。
<?php
add_action( 'wp_enqueue_scripts', 'my_child_theme_enqueue_styles' );
function my_child_theme_enqueue_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'child-style',
get_stylesheet_directory_uri() . '/style.css',
array( 'parent-style' ),
wp_get_theme()->get('Version')
);
}
?> get_template_directory_uri() Bu fonksiyon, üst tema dizininin URL’sini alır. get_stylesheet_directory_uri() Mevcut etkinlik temasının (alt temasının) kataloğunun URL’sini, bağımlılık dizisi aracılığıyla alın. array( 'parent-style' ) Alt temanın stilinin üst temanın stilinden sonra yüklenmesini sağlayın; böylece özelleştirdiğiniz CSS kuralları üst temanın stillerini doğru bir şekilde geçersiz kılabilir.
Genişletilmiş alt konuların (extended subtopics) işlevleri
Temel yapıyı oluşturduktan sonra, şunları yaparak devam edebilirsiniz: functions.php Bu dosya, web sitesinin özelliklerini sınırsız bir şekilde genişletir. Bu dosyadaki kod, üst tema (parent theme) içindeki kodlardan önce yürütülür. functions.php Dosya çalıştırma işlemi, temel özellikleri değiştirmek için mükemmel bir başlangıç noktası sunar.
Özelleştirilmiş web sitesi özellikleri
Örneğin, web sitenize “Proje” adında yeni bir özel makale türü eklemek isteyebilirsiniz. Bunu alt konular (subtopics) aracılığıyla yapabilirsiniz. functions.php Dosyada bunu kaydedin.
add_action( 'init', 'register_project_post_type' );
function register_project_post_type() {
$args = array(
'public' => true,
'label' => '项目',
'has_archive' => true,
'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt' ),
'menu_icon' => 'dashicons-portfolio',
);
register_post_type( 'project', $args );
} Aynı zamanda, bazı gereksiz üst tema özelliklerini de kaldırabilirsiniz. Örneğin, eğer üst tema istemediğiniz bir sayfa altı aracını belirli bir fonksiyon aracılığıyla eklediyse, bunu kaldırmak için ilgili ayarları değiştirebilirsiniz. remove_action() Gelip bunu kaldırın.Varsayalım ki üst tema (parent theme) şu şekilde… init Kancaya takılır. parent_theme_footer_widgets Fonksiyona bir araç eklenmiştir; bunu şu şekilde kaldırabilirsiniz:
add_action( 'after_setup_theme', 'remove_parent_theme_features', 15 );
function remove_parent_theme_features() {
remove_action( 'init', 'parent_theme_footer_widgets' );
} Lütfen dikkat, burada şu ifade kullanılmaktadır: after_setup_theme Kancayı kullanarak ve biraz daha yüksek bir öncelik (örneğin 15) belirleyerek, üst temanın kodunun zaten çalıştığından emin olmak amaçlanmıştır. add_actionBu şekilde bizim… remove_action Yalnızca bu şekilde etkili olabilir.
Baba tema şablon dosyasını örtün.
Alt temaların en güçlü özelliklerinden biri, üst temanın şablon dosyalarını geçersiz kılabilmesidir. Bir makale sayfasının görünümünü değiştirmek istiyorsanız, yalnızca üst temadaki şablon dosyalarını değiştirmeniz yeterlidir. single.php Kopyayı alt konu dizininize yapın ve ardından düzenleyin. WordPress otomatik olarak sizin sürümünüzü kullanacaktır.
Tavsiye edilen okuma Potansiyeli Açmak: Gelişmiş WordPress Temaları Oluşturmanın Temel Teknolojilerini ve En İyi Uygulamalarını Keşfedin。
Daha ayrıntılı kontrol için, şablon bileşenlerini (Template Parts) veya belirli şablon modüllerini de değiştirebilirsiniz. Örneğin, makale meta verilerinin görünümünü değiştirmek istiyorsanız, üst temadaki ilgili bileşenleri kopyalayıp düzenleyebilirsiniz. template-parts/content-post-meta.php Dosya, alt konunun aynı yolunda bulunmaktadır.
İleri Düzey Alt Konu Geliştirme Teknikleri
Alt temaların geliştirilmesi daha profesyonel bir aşamaya geldiğinde, yerelleştirme, tema seçeneklerinin devralınması ve alt temaların kendilerinin güncellenmesi gibi ileri düzey konularla karşılaşacaksınız.
Metnin yerelleştirilmiş çevirisini gerçekleştirmek.
Alt temanınızın çok dilli olmasını sağlamak için, metin alanlarını (Text Fields) doğru bir şekilde ayarlamanız ve çeviri fonksiyonlarını kullanmanız gerekmektedir. style.css Bunun başı ve functions.php Metin alanını yüklemek ilk adımdır.
在 functions.php Çin'de, kullanılır. load_child_theme_textdomain Function:
add_action( 'after_setup_theme', 'child_theme_localization_setup' );
function child_theme_localization_setup() {
load_child_theme_textdomain( 'twentytwentyfour-child', get_stylesheet_directory() . '/languages' );
} Daha sonra, çevrilmesi gereken metin parçalarında şöyle bir yapı kullanın: esc_html__( 'Your Text', 'twentytwentyfour-child' ) Bu tür bir fonksiyon paketlemesiyle, daha sonra Poedit gibi araçları kullanarak kodu oluşturabilirsiniz. .po 和 .mo Dosyayı çevirin ve alt konunun içine yerleştirin. /languages/ Kataloğda.
Çekirdek fonksiyonları güvenli bir şekilde değiştirmek
Bazen, üst temadaki karmaşık bir fonksiyonu değiştirmeniz gerekebilir; ancak bu fonksiyon, yeterli esneklik sağlamak için hook’lar (düğümler) kullanmamaktadır. Eğer bu fonksiyon “eklenebilir” (pluggable) ise, yani farklı modüller tarafından kullanılabilir durumdaysa, bu durum işleri kolaylaştırabilir. if ( ! function_exists( ... ) ) Paketleme işlemleriyle ilgili olarak, alt konularda daha ayrıntılı bilgiler bulabilirsiniz. functions.php Bu fonksiyonu doğrudan yeniden tanımlayarak, onu tamamen geçersiz kılabilirsiniz.
Bu işlemi denemeden önce, üst temadaki fonksiyonların tanımlanma şeklini mutlaka kontrol edin. Eğer fonksiyonlar “eklenebilir” (plug-in yapılabilir) değilse, zorla yeniden tanımlamaya çalışmak ölümcül hatalara neden olabilir. Bu durumda, tema geliştiricisiyle iletişime geçmek veya ihtiyaçlarınızı karşılamak için başka filtre mekanizmaları (filter hooks) aramak daha güvenli bir yöntemdir.
Özetle.
WordPress alt teması oluşturmak, bir profesyonelin mutlaka kazanması gereken temel bir beceridir. Bu işlem, özelleştirilmiş kodunuzun temanın temel kodundan net bir şekilde ayrılmasını sağlayarak güvenli ve sürdürülebilir bir özelleştirme süreci oluşturur. Doğru başlık bilgilerini içeren bir dosya oluşturarak başlayabilirsiniz… style.css Ve stil yüklemesiyle ilgili… functions.php Başlangıçtan şablon dosyalarını özelleştirmeye, ek özellikler eklemeye, yerelleştirmeyi ve daha gelişmiş özelleştirmeleri işlemeye kadar her adımda WordPress’in en iyi uygulamalarına uyulmaktadır. Alt temaları kullanmaya sürekli bağlı kalmanız, web sitenizin önümüzdeki yıllarda hem güncellemeleri takip edebilmesini hem de benzersiz bir görünüm ve işlevselliğe sahip olmasını sağlamanın sağlam bir temelidir.
Sıkça Sorulan Sorular.
Alt konuların klasör adları için hangi gereksinimler bulunmaktadır?
Alt konuların klasör adlarında kesin bir sınırlama yoktur; ancak anlaşılırlık açısından genellikle “ana konu adı-çocuk” formatının kullanılması önerilir. Örneğin: astra-childÖnemli olan nokta şu ki… style.css “Dosya başlığında” Template: Bu alanın değeri, üst konunun klasör adıyla tam olarak aynı olmalıdır (büyük/küçük harfler de dahil). Aksi takdirde WordPress, ebeveyn-çocuk ilişkisini doğru bir şekilde kuramaz.
Tüm üst konular, alt konu oluşturmayı destekliyor mu?
Çoğu modern tema ve WordPress kodlama standartlarına uyan tema, alt temaları tam olarak destekler. Teorik olarak, her tema bir üst tema olarak kullanılabilir. Ancak, kötü tasarlanmış veya çok eski temalar, kaynaklara mutlak yollarla atıfta bulunmaları veya gerekli şablon dosyalarının eksik olması nedeniyle alt temaların düzgün çalışmamasına yol açabilir. Bir üst tema seçerken, dokümanlarını veya kullanıcı yorumlarını incelemek akıllıca bir adımdır.
Doğrudan değiştirilmiş bir üst temayı bir alt temaya nasıl taşıyabilirsiniz?
Öncelikle, yerel veya test ortamınızda, değiştirilmemiş orijinal üst temaya dayanarak yeni bir alt tema oluşturun. Daha sonra, daha önce değiştirdiğiniz üst tema dosyalarını orijinal dosyalarla tek tek karşılaştırın. Bu farklılıkları (CSS, PHP veya HTML olabilir) düzenli bir şekilde alt temanın ilgili dosyalarına aktarın: CSS dosyalarını alt temanın ilgili klasörlerine koyun. style.cssİşlevsel kodu içeriye koyun. functions.phpDüzeltilmiş şablon dosyaları, alt konu dizinine kopyalandıktan sonra değişiklikler yapılır. Bu, detaylı ve zaman alıcı bir süreçtir; ancak bir kez yapıldığında sonuç kalıcıdır.
Alt konular web sitesinin hızını etkiler mi?
Doğru şekilde oluşturulmuş alt temaların web sitesi hızı üzerindeki etkisi neredeyse hiç yoktur. Ek CSS ve JS dosyaları genellikle çok küçüktür ve doğru sıralamayla yüklenerek verimli bir şekilde birleştirilebilir ve önbelleğe alınabilir. Alt temaların asıl maliyeti, muhtemelen başka kaynaklardan kaynaklanmaktadır. functions.php Eklenen karmaşık PHP mantığı nedeniyle, alt temanın kodunun sade ve verimli kalması, üst temada geliştirme yapılırken izlenen prensiplerle aynıdır. Önbellek teknolojilerini mantıklı bir şekilde kullanmak, olası performans sorunlarını daha da azaltabilir.
Bir sonraki adım, bundan sonra ne yapmalıyım?
Daha fazla okuma ve pratik bilgiler.
Aşağıdaki içerikler bu makalenin konusuyla ilgilidir ve daha fazla okumak için uygundur. Öncelikle mevcut sorununuza en yakın makaleden başlayın, sonra çevresel konulara doğru ilerleyin, genellikle daha iyi sonuçlar alırsınız.
- WordPress Çoklu Site Ağı Yapılandırmasına Detaylı Bir Bakış
- Profesyonel web sitelerini kolayca oluşturun: WordPress’ten başlayarak ustalığa ulaşmanız için kapsamlı bir rehber
- WooCommerce Kılavuzu: Sıfırdan Başlayarak Güçlü Bir WordPress E-Ticaret Sitesi Oluşturma
- WordPress Temel Başlangıç Kılavuzu: Sıfırdan İlk Profesyonel Web Sitenizi Oluşturun
- Neden bir çevrimiçi mağaza oluşturmak için WooCommerce kullanmalıyız?