Sıfırdan başlayarak kendi özel WordPress temasınızı oluşturun: Mimarisi, Tasarımı ve Geliştirilmesi için Kapsamlı Rehber

3 dakika okuma.
2026-03-13
2026-06-04
2,763
Aşağıdaki bağlantılar üzerinden alışveriş yaptığınızda, sizin için ek bir maliyet olmadan komisyon kazanıyorum.

Hazırlık İşlemleri ve Ortam Kurulumu

İlk satırı kod yazmaya başlamadan önce, stabil ve verimli bir yerel geliştirme ortamı başarının temelidir. XAMPP, MAMP veya daha modern olan Local by Flywheel gibi bir yerel sunucu yazılım paketi yüklemeniz gerekmektedir. Bu araçlar, Apache, MySQL ve PHP ortamlarını sizin için hazırlayacaktır.

Ardından, WordPress.org resmi web sitesinden en yeni WordPress çekirdek dosyalarını indirin ve bunları yerel sunucunuza yükleyin. Yükleme işlemi tamamlandıktan sonra, wp-content/themes Katalogda kendinize ait bir tema dosya dizini oluşturun. Bu dosya dizini için basit ve benzersiz bir isim seçin, örneğin: my-custom-themeBu, tema kök dizininizdir; tüm temel dosyalar burada saklanacaktır.

Son olarak, Visual Studio Code veya PHPStorm gibi güçlü bir kod editörü kullanmanız şiddetle tavsiye edilir; bu editörlerin kod vurgulama, otomatik tamamlama ve hata ayıklama özellikleri geliştirme verimliliğinizi büyük ölçüde artıracaktır. Aynı zamanda, tarayıcınıza WordPress tema geliştirme ile ilgili hata ayıklama araçlarını (örneğin sorgu izleyici eklentileri) yüklemek de çok önemlidir.

Tavsiye edilen okuma WordPress Tema Geliştirme Kılavuzu: Başlangıçtan Uzmanlığa Kadar Tam Süreç Pratiği

WordPress temasını oluşturan temel dosyalar

İşlevsel olarak tam bir WordPress teması, bir dizi zorunlu ve isteğe bağlı dosyadan oluşur. Bu dosyaların işlevlerini ve nasıl organize edildiğini anlamak, bir tema oluşturmanın ilk adımıdır.

UltaHost WordPress Sunucusu
30 gün iade garantisi, sınırsız bant genişliği ve veritabanı kullanımı, ücretsiz DDoS koruması; 3 yıllık abonelikte indirim (50%).

Konunun stil şeması ve bilgi beyanı

Her konu, “” adında bir bölüm içermelidir. style.css Bu stil şablonu (stylesheet) dosyasının işlevi, sadece stilleri tanımlamaktan çok daha fazladır. Dosyanın en üstündeki yorum bloğu, WordPress’e temanın meta verilerini bildirmek için kullanılır. Bu, WordPress’in temayı tanıyıp etkinleştirebilmesinin tek yoludur. Tipik bir bildirim bloğu aşağıdaki gibidir:

/*
Theme Name: 我的自定义主题
Theme URI: https://example.com/my-custom-theme/
Author: 您的名字
Author URI: https://example.com/
Description: 这是一个从零开始构建的自定义主题,用于学习和展示。
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-custom-theme
Domain Path: /languages
*/

Bunlar arasında,Text Domain Uluslararasılaştırma amacıyla kullanılır ve temanızın klasör adıyla eşleşmelidir. Diğer tüm dosyalar bu kurala göre işlenecektir. get_template_directory_uri() Fonksiyonlar, bu dosyayı başlangıç noktası olarak kullanır.

Ana şablon dosyası: Sayfa yapısını ve mantığını kontrol eden dosya.

index.php Bu, temanın nihai yedek şablon dosyasıdır; eğer WordPress daha spesifik bir şablon dosyası bulamazsa (örneğin…) single.phppage.phpBu araç kullanıldığında, makale listesini göstermek için genellikle bir döngü içerir.

Ancak, iyi yapılandırılmış bir tema yalnızca bunlara bağımlı olmamalıdır. index.phpSitenin iskeletini oluşturmak için bir dizi şablon dosyası oluşturmanız gerekir.header.php HTML belgesinin baş kısmını oluşturmaktan sorumludur; bu kısım şunları içerir: Bazı bölümler ve sayfa üstündeki ortak alanlar (örneğin navigasyon menüsü).footer.php O zaman sayfa altı (footer) içeriğini görüntüleyin. Sayfa ana gövde şablonunda bunu kullanabilirsiniz. get_header()get_footer() Bu fonksiyonlar, onları içe aktarmak için kullanılır.

Tavsiye edilen okuma WordPress Tema Geliştirme Kılavuzu: Sıfırdan Hayata

functions.php Bu dosya, temanın “beyni” olarak adlandırılır; doğrudan çalıştırılan bir betik değil, teman başlatıldığında WordPress tarafından otomatik olarak yüklenen bir dosyadır. Burada özel fonksiyonlar tanımlayabilir, menü öğelerini kaydedebilir, makale özetleri, sayfa iletişim kutuları gibi temaya özgü özellikler ekleyebilir, stil şemalarını ve betikleri sırayla yükleyebilirsiniz.

Ayrıntılı Anlatım: Tema Özellikleri ve Stil Geliştirme

Iskelet oluşturulduktan sonra, çekirdek işlevlere içerik eklemeye ve görünümünü tasarlamaya başlayabilirsiniz.

“Temalar” özelliğini etkinleştirme ve “Kayıt” menüsü

functions.php Burada, öncelikle bir dizi WordPress çekirdek özelliğini etkinleştiriyoruz. Bu işlem şu şekilde yapılır: add_theme_support() Fonksiyon uygulaması. Örneğin, “makale özet resimleri” (özel görseller) ve “uyumlu resimler” özelliklerini desteklemek için aşağıdaki kodu ekleyebilirsiniz:

hosting.com Paylaşımlı Barındırma
AMD EPYC CPU'lar, NVMe SSD depolama ve LiteSpeed ile yüksek performans, 7/24, 7x7 uzman şirket içi destek, SSL, kaba kuvvet, kötü amaçlı yazılım ve DDoS koruması dahil gelişmiş güvenlik önlemleri, 73%'ye kadar tasarruf
function mytheme_setup() {
    add_theme_support('post-thumbnails');
    add_theme_support('title-tag'); // 让 WordPress 管理页面标题
    add_theme_support('html5', array('search-form', 'comment-form', 'comment-list', 'gallery', 'caption'));
    add_theme_support('custom-logo');
}
add_action('after_setup_theme', 'mytheme_setup');

Bundan sonra, menü yerlerini kaydedin. Bu, kullanıcıların WordPress arayüzündeki “Görünüm” -> “Menüler” bölümünde navigasyonu yönetmelerine olanak tanır. register_nav_menus() Function:

function mytheme_menus() {
    register_nav_menus(
        array(
            'primary' => __('主导航菜单', 'my-custom-theme'),
            'footer'  => __('页脚导航菜单', 'my-custom-theme'),
        )
    );
}
add_action('init', 'mytheme_menus');

Stillerin ve betiklerin doğru bir şekilde dahil edilmesi

Asla şablon dosyasında doğrudan bunu yapmayın. Kaynaklar, etiketlerin sabit olarak kodlanması yoluyla dahil edilmelidir. Bunun için uygun yöntemler kullanılmalıdır. wp_enqueue_style()wp_enqueue_script() fonksiyonları ve bunları bağlamak. wp_enqueue_scripts Kancada. Bu, bağımlılıkların doğru bir şekilde işlenmesini sağlar ve kaynakların tekrar tekrar yüklenmesini önler.

function mytheme_scripts() {
    // 引入主样式表
    wp_enqueue_style('mytheme-style', get_stylesheet_uri(), array(), '1.0.0');
    // 引入自定义 JavaScript 文件
    wp_enqueue_script('mytheme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0.0', true);
    // 如果需要,引入 jQuery(WordPress 已内置)
    // wp_enqueue_script('jquery');
}
add_action('wp_enqueue_scripts', 'mytheme_scripts');

Bir kenar çubuğu ve araç çubuğu bölgesi oluşturun.

Konunun kenar çubuğuna veya alt kısmına dinamik olarak araççıklar ekleyebilmek için, öncelikle şunu kullanmanız gerekecektir: register_sidebar() Fonksiyon kaydı için yardımcı araçlar bölümü.

Tavsiye edilen okuma WordPress Tema Geliştirme Rehberi: Sıfırdan Başlayarak Özelleştirilmiş Web Siteleri Oluşturma

function mytheme_widgets_init() {
    register_sidebar(
        array(
            'name'          => __('主侧边栏', 'my-custom-theme'),
            'id'            => 'sidebar-1',
            'description'   => __('在此添加小工具以显示在主侧边栏。', 'my-custom-theme'),
            'before_widget' =&gt; '<section id="%1$s" class="widget %2$s">',
            'after_widget'  =&gt; '</section>',
            'before_title'  =&gt; '<h2 class="widget-title">',
            'after_title'   =&gt; '</h2>',
        )
    );
}
add_action('widgets_init', 'mytheme_widgets_init');

Kayıt olduktan sonra, sidebar.php Şablon dosyasında kullanılır. dynamic_sidebar('sidebar-1') Bu bölgeyi göstermek için sadece bir fonksiyon çağrısı yeterlidir.

Gelişmiş şablonlar oluşturma ve şablon hiyerarşisi

WordPress’in şablon yapısı, en güçlü özelliklerinden biridir. Bu yapı, WordPress’in mevcut isteğe göre hangi şablon dosyasını kullanarak sayfayı renderlayacağını otomatik olarak belirler.

InterServer Paylaşımlı Barındırma
Paylaşımlı hosting aylık $2.50 USD, ilk ay $0.1 USD promosyon kodu tryinterserver, 461 bulut uygulaması komut dosyası, tek tıklamayla yükleme.

Farklı makale türleri için özel şablonlar oluşturmak.

Örneğin, tek bir makaleye erişildiğinde, WordPress şablon dosyalarını aşağıdaki sırayla arar:single-{post-type}-{slug}.php -> single-{post-type}.php -> single.php -> singular.php -> index.phpBu nedenle, “book” adlı özel makale türü için benzersiz bir makale şablonu oluşturmak istiyorsanız, yalnızca temanın kök dizininde bir dosya oluşturmanız yeterlidir. single-book.php Dosyayı açın ve içine “book” ile ilgili gösterim mantığını yazın.

Kodu, şablon bazlı bazı dosyalar kullanarak düzenleyin.

Birden fazla şablonda tekrar tekrar kullanılan kod blokları – örneğin makale meta verileri, makale döngü öğeleri, yorum listeleri vb. – “Şablon Bölümleri” adlı dosyalar halinde ayrılabilir. Böylece bu kodlar tüm şablonlarda kolayca yeniden kullanılabilir. get_template_part() Bu fonksiyonlar, onları çağırmak için kullanılır. Örneğin, döngü içindeki her makalenin gösterim yapısını belirlemek için… template-parts/content.php Orada, sonra... index.php Döngü içinde çağrılan:

while ( have_posts() ) :
    the_post();
    get_template_part('template-parts/content', get_post_type());
endwhile;

Bu kod, öncelikle şu tür şeyleri arayacaktır: template-parts/content-post.php Böyle bir dosya bulunamazsa, önceki duruma geri dönülür. template-parts/content.phpBu, kodun sürdürülebilirliğini ve yeniden kullanılabilirliğini büyük ölçüde artırmıştır.

Özetle.

Sıfırdan bir WordPress teması geliştirmek, ortam hazırlığından temel dosyaların oluşturulmasına, işlevlerin geliştirilmesinden şablonların detaylandırılmasına kadar tüm süreci kapsayan sistematik bir iştir. Önemli olan, WordPress’in şablon hiyerarşisini ve hook (eklemek) mekanizmasını anlamak, kodlama standartlarına uymak ve kodu modüler bir yaklaşımla düzenlemektir. Kendi ellerinizle bir tema oluşturarak, sadece ihtiyaçlarınıza tam olarak uygun bir web sitesi elde etmekle kalmaz, aynı zamanda WordPress’in temel çalışma prensiplerini de derinlemesine öğrenir ve daha karmaşık özelleştirme ihtiyaçlarına karşı sağlam bir temel oluşturursunuz.

Sıkça Sorulan Sorular.

###: WordPress teması geliştirmek için PHP bilgisine hakim olmak zorunda mıyım?
Evet, kapsamlı özelliklere sahip ve iyi yapılandırılmış bir WordPress teması geliştirmek için PHP konusunda sağlam bir bilgiye sahip olmak gereklidir. Çünkü temanın mantıksal kontrolü, veri sorgulamaları ve fonksiyon yazımı esas olarak PHP’ye dayanır. Aynı zamanda HTML, CSS ve temel JavaScript bilgilerine de hakim olmak şarttır.

Konudaki functions.php dosyası ile eklentiler (plugins) arasındaki fark nedir?

functions.php Dosyadaki kod yalnızca aktif olan temaya özgüdür ve temanın görsel görünümüyle ve sunumuyla yakından ilgilidir. Eklentiler ise temadan bağımsız genel işlevler eklemek için kullanılır; temayı değiştirdiğinizde bile eklentilerin işlevleri devam eder. İyi bir uygulama şudur: Web sitesinin düzenini ve görünümünü etkileyen işlevleri temalara yerleştirin, ancak içerik yönetimi veya iş mantığı gibi bağımsız işlevleri eklentiler olarak oluşturun.

Nasıl temamı çok dilli (uluslararasılaştırılmış) hale getirebilirim?

You need to style.css Doğru şekilde ayarlanmış. Text DomainDomain PathDaha sonra, konu içinde çevrilmesi gereken tüm metin parçalarını WordPress’in çeviri fonksiyonları ile sarın; örneğin: __('文本', 'my-custom-theme')_e('文本', 'my-custom-theme')Son olarak, Poedit gibi araçları kullanarak dosyayı oluşturun. .pot Şablon dosyalarını hazırlayın ve çevirmenin buna karşılık gelen çevirileri oluşturmasını sağlayın. .po.mo Dil dosyası.

WordPress temalarında geliştirme sırasında hataları nasıl ayıklarım?

Öncelikle, wp-config.php Dosyada WordPress hata ayıklama modunu etkinleştirin. WP_DEBUG Sabit, olarak ayarlandı. trueBu, PHP hatalarını ve uyarılarını sayfada gösterecektir. Ayrıca, “Query Monitor” gibi geliştirme eklentilerini yükleyip etkinleştirmenizi öneririm; bu eklentiler veritabanı sorgularını, işlemleri, betik kuyruklarını vb. ayrıntılı bir şekilde gösterebilir ve performans analizi ile hata tespitinde çok faydalıdır.