Sıfırdan Uzmanlığa: WordPress Tema Geliştirme Kapsamlı Rehberi ve Pratik Eğitim Kursu

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

WordPress tema geliştirmenin temel kavramları ve prensipleri

Herhangi bir kod yazmaya başlamadan önce, WordPress temasının temel kavramlarını anlamak çok önemlidir. Bir WordPress teması, esasen bir dizi dosyanın toplamıdır ve bu dosyalar web sitesinin ön yüzünün nasıl görüntüleneceğini tanımlar; bu, sayfa düzeninden renklere, yazı tipi stillerine kadar her şeyi kapsar. Belirli bir klasör yapısına uyar ve içeriği dinamik olarak sunmak için WordPress’in temel sistemleriyle etkileşim kurar.

Konunun özü, şablon dosyalarıdır. PHP tabanlı bu dosyalar, farklı türdeki içeriklerin nasıl görüntüleneceğini belirler. Örneğin,index.phpBu, ana şablon dosyasıdır ve WordPress daha spesifik bir şablon bulamadığında kullanılan varsayılan geri dönüş dosyasıdır. Ana sayfa genellikle bu şablon kullanılarak oluşturulur.home.phpfront-page.phpKontrol: Tek bir makale şu şekilde oluşturulur:single.phpKontrol, ancak sayfa ise…page.phpKontrol.

Diğer bir kritik dosya ise…style.cssSadece temanın tüm stil şablonlarını içermekle kalmaz, aynı zamanda temanın “kimlik kartı” görevi de görür. Bu dosyanın baş kısmındaki yorum bloğunda, temanın adı, yazarı, açıklaması, sürüm numarası gibi önemli meta veriler bulunur. Doğru bilgiler olmadan…style.cssWordPress, temanızı tanıyamayacaktır. Temanızın temel yapısı şu şekildedir:

Tavsiye edilen okuma WordPress Tema Geliştirme Kılavuzu: Başlangıçtan Uzmanlığa Kadar Pratik Eğitim Kursu

/*
Theme Name: 我的第一个主题
Theme URI: https://example.com/my-first-theme
Author: 开发者名称
Author URI: https://example.com
Description: 这是一个为学习而创建的WordPress主题。
Version: 1.0.0
License: GPL v2 or later
Text Domain: my-first-theme
*/

İlk tema dosyanızın yapısını oluşturun.

İşlevsel ve yapısal olarak bütünlüklü bir tema oluşturmak için standart bir katalog ve dosya düzenleme yöntemine uyulmalıdır. Temel ancak eksiksiz bir tema, birkaç temel dosya ile başlatılabilir.

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%).

Bunların dışında…index.phpstyle.cssAyrıca, sağlam bir tema genellikle aşağıdaki temel dosyaları içerir:
1. functions.phpBu, temanın “beyni” olarak adlandırılır ve temaya özel özelliklerin eklenmesi, kayıt menüsünün oluşturulması, kenar çubuğunun (Widget bölgesi) düzenlenmesi, betiklerin ve stillerin yüklenmesi gibi işlemler için kullanılır. Bu bir şablon dosyası değildir; ancak her tema bunu içermelidir.
2. header.phpWeb sitesi belgelerinin baş kısmını, navigasyon menüsünü ve sayfanın başlangıcını içeren HTML yapısı.
3. footer.phpSayfanın alt kısmında telif hakkı bilgileri, betikler ve sonlandırma etiketleri bulunmaktadır.
4. sidebar.phpBir kenar çubuğunun HTML yapısını tanımlayın.
5. page.phpsingle.phpBiri statik sayfaları, diğeri ise tek bir makaleyi renderlemek için kullanılır.

Verimli bir geliştirme iş akışı, ana şablon dosyasının oluşturulmasını içerir.index.phpBu dosyaları çağırmak için WordPress’in yerleşik şablon fonksiyonlarını kullanın:

<?php get_header(); ?>

<main id="main">
    &lt;?php
    if ( have_posts() ) :
        while ( have_posts() ) : the_post();
            // 显示内容
            the_title( &#039;<h1>', '</h1>' );
            the_content();
        endwhile;
    else :
        echo '<p>没有找到内容。</p>';
    endif;
    ?&gt;
</main>

functions.phpBurada, şu yollarla ulaşabilirsiniz:add_actionÖzellikleri kaydetmek için kullanılan “kancalar” (hooks); örneğin, makale özetlerine (özel görseller) destek eklemek gibi:

<?php
// 为主题添加基本支持
function mytheme_setup() {
    // 启用文章和页面上的“特色图像”功能
    add_theme_support( 'post-thumbnails' );
    // 添加对HTML5标记的支持
    add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' ) );
    // 注册一个主导航菜单
    register_nav_menus( array(
        'primary' => __( '主导航菜单', 'my-first-theme' ),
    ) );
}
add_action( 'after_setup_theme', 'mytheme_setup' );

Şablon hiyerarşisi ve döngü sistemini kullanmak

WordPress’in şablon hiyerarşisi, belirli bir sayfa isteği için hangi şablon dosyasının kullanılacağını belirleyen bir kural sistemidir. Bu hiyerarşiyi anlamak, gelişmiş temalar oluşturmanın temelidir; çünkü web sitenizin farklı bölümleri için son derece özelleştirilmiş tasarımlar oluşturmanıza olanak tanır.

Tavsiye edilen okuma WordPress Tema Geliştirmeyi Sıfırdan Öğrenin: Kişiselleştirilmiş Web Siteleri Oluşturun

Kullanıcılar web sitenizi ziyaret ettiğinde, WordPress mevcut içerik türüne (örneğin blog makalesi, sayfa, kategori arşivi vb.) göre uygun şablon dosyasını arar. Arama sırası, en özelden en genelgeye doğru ilerler. Örneğin, ID’si 5 olan bir sayfa için WordPress sırasıyla şunları arar:
1. page-5.php (Yalnızca bu sayfa ID’si için oluşturulmuştur.)
2. page-sample-page.php (Yazının devamında, sayfanın başka bir adı kullanılmaktadır.)
3. page.php (Genel Sayfa Şablonu)
4. singular.php (Genel Tek İçerik Şablonu)
5. index.php (Nihai Geri Dönüş)

Tüm içeriğin gösterilmesinin merkezinde “WordPress Döngüsü” (The Loop) bulunmaktadır. Bu, mevcut sorgunun sonuç kümesini döngüsel olarak tarayıp her makaleyi veya sayfayı görüntülemek için kullanılan bir PHP kod bloğudur. Döngünün temel yapısı, her şablon dosyasında büyük ölçüde aynıdır:

&lt;?php
if ( have_posts() ) :
    while ( have_posts() ) : the_post();
        // 当前文章/页面的内容在这里输出
        the_title( &#039;<h2 class="entry-title"><a href="/tr/' . esc_url( get_permalink() ) . '/">', '</a></h2>' );
        the_excerpt(); // 或使用 the_content()
    endwhile;
    the_posts_navigation(); // 文章导航链接
else :
    // 如果没有找到任何内容
    _e( '抱歉,没有找到符合您要求的内容。', 'textdomain' );
endif;
?&gt;

Şablonların modülerliğini ve sürdürülebilirliğini artırmak için WordPress, kullanımını teşvik eder.get_template_part()Bu, makale özetleri, makale meta verileri gibi ortak gösterim kodlarını ayrı dosyalara ayırarak tekrar kullanmanıza olanak tanır.

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
// 在 archive.php 或 index.php 中
while ( have_posts() ) : the_post();
    get_template_part( 'template-parts/content', get_post_format() );
endwhile;

Bu kod, bir şey yüklemeye çalışacaktır.template-parts/content-{post-format}.php(Örneğin)content-video.phpEğer mevcut değilse, yükleyin.template-parts/content.php

Gelişmiş Özellikler: Tema Özelleştirici ve Özel Alanlar

Günümüzde WordPress temalarının geliştirilmesi sadece görsel sunumu değil, aynı zamanda kullanıcılara sezgisel özelleştirme seçenekleri sunmayı da hedeflemektedir. WordPress Tema Özelleştirici (Customizer), kullanıcıların kodla uğraşmadan tema ayarlarını değiştirebilecekleri gerçek zamanlı bir önizleme arayüzü sağlar.

functions.phpBurada kullanabilirsiniz.$wp_customizeNesneler, ayarlar, kontroller ve bloklar eklemek için kullanılır. Örneğin, bir sayfa altı telif hakkı metni seçeneği eklemek için…

Tavsiye edilen okuma Sıfırdan Bir: Modern WordPress Tema Geliştirmenin Temel Becerilerini ve Uygulama Rehberini Öğrenin

function mytheme_customize_register( $wp_customize ) {
    // 添加一个新的设置
    $wp_customize->add_setting( 'mytheme_footer_text', array(
        'default'           => '© 2026 我的网站。保留所有权利。',
        'sanitize_callback' => 'sanitize_text_field',
        'transport'         => 'postMessage', // 实现实时预览
    ) );

// 添加一个控件来编辑这个设置
    $wp_customize->add_control( 'mytheme_footer_text', array(
        'label'    => __( '页脚版权文本', 'my-first-theme' ),
        'section'  => 'title_tagline', // 放在“站点身份”区域
        'type'     => 'text',
    ) );
}
add_action( 'customize_register', 'mytheme_customize_register' );

Sonra,footer.phpBurada, şu yollarla ulaşabilirsiniz:get_theme_mod()Fonksiyon bu değeri döndürür:

echo esc_html( get_theme_mod( 'mytheme_footer_text', '默认版权文本' ) );

Daha karmaşık içerik yapıları için, makale meta verileri (özelleştirilmiş alanlar) ve sınıflandırma sistemlerinin genişletilmesi güçlü araçlardır. Bunları, gelişmiş özelleştirilmiş alanlar (Advanced Custom Fields – ACF) eklentileri veya WordPress’in yerleşik fonksiyonları aracılığıyla gerçekleştirebilirsiniz. Örneğin, bir makaleye “okuma süresi” alanı eklemek için…

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.
// 在 single.php 中显示自定义字段
$reading_time = get_post_meta( get_the_ID(), 'reading_time_minutes', true );
if ( $reading_time ) {
    echo '<span class="reading-time">Okuma süresi: '.intval($reading_time).' dakika</span>';
}

Daha dinamik sayfalar oluşturmak için özel sayfa şablonları oluşturmak yaygın bir tekniktir. Yapmanız gereken, PHP dosyanızın en üstüne belirli bir yorum bloğu eklemektir; bu yorum bloğu, sayfanın “Şablon” açılır menüsünde görünecektir.

<?php
/*
Template Name: 全宽页面模板
*/
get_header();
?>
<!-- 你的全宽内容布局代码 -->
<?php get_footer(); ?>

Özetle.

WordPress tema geliştirme, tasarım, ön uç teknolojileri ve arka uç mantığını bir araya getiren kapsamlı bir beceridir. En temel konseptlerden başlayarak…style.cssindex.phpDosyanın başından itibaren, şablon hiyerarşisi kurallarını ve döngü sistemlerini adım adım öğrenmek, işlevsel temalar oluşturmanın temelidir. Tema yapısını modüler hale getirerek ve bunları etkili bir şekilde kullanarak…functions.phpget_template_part()Fonksiyonlar, kodun sürdürülebilirliğini ve yeniden kullanılabilirliğini büyük ölçüde artırabilir.

İleri seviyede, derin entegrasyona sahip tema özelleştiricileri kullanıcılara kullanıcı dostu ve gerçek zamanlı bir ayar deneyimi sunar. Özelleştirilmiş alanları ve sayfa şablonlarını esnek bir şekilde kullanmak ise karmaşık ihtiyaçları karşılayan içerik düzenlemeleri oluşturmanızı sağlar. WordPress’in resmi kodlama standartlarına ve en iyi uygulamalarına uymak, geliştirme becerilerinizi “kullanılabilir” seviyeden “uzman” seviyesine taşımak için kritik öneme sahiptir. Bu sayede temanızın güvenli, verimli olmasını ve tüm WordPress ekosistemiyle uyumlu çalışmasını sağlarsınız.

Sıkça Sorulan Sorular.

WordPress temaları ve eklentileri (plugins) arasındaki farklar nelerdir?

Temalar, bir web sitesinin görünümünü ve ön yüzdeki (frontend) sunumunu kontrol eder; web sitesinin düzenini, renk ayarlarını, tipografiyi ve diğer görsel özelliklerini belirler. Temalar, WordPress’in şablon yapısıyla doğrudan şablon dosyaları aracılığıyla etkileşim kurar.

Eklentiler, bir web sitesinin işlevlerini genişletmek için kullanılır ve görünümü değiştirmeden siteye yeni özellikler ekleyebilirler; örneğin iletişim formları, arama motoru optimizasyon araçları, e-ticaret özellikleri vb. Bir web sitesi yalnızca bir tema ile aktif olabilir, ancak birden fazla eklenti yüklenip aktive edilebilir.

functions.php dosyasında stil ve betikleri doğru bir şekilde kaydetmenin yolu nedir?

Doğru yöntem kullanmaktır.wp_enqueue_scriptsKancalar (hooks). Bu, bağımlılıkların doğru bir şekilde işlenmesini sağlar ve tekrarlanan yüklemelerin önlenmesine yardımcı olur. İşte standart bir örnek:

function mytheme_enqueue_assets() {
    // 注册并排队主样式表
    wp_enqueue_style( 'mytheme-main-style', get_stylesheet_uri(), array(), '1.0.0' );
    // 注册并排队一个自定义JavaScript文件
    wp_enqueue_script( 'mytheme-custom-script', get_template_directory_uri() . '/js/custom.js', array('jquery'), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_assets' );

Kesinlikle şablon dosyalarında doğrudan kullanmayın.linkscriptKaynakların etiketlerle doğrudan kodlanarak dahil edilmesi, WordPress’in en iyi uygulamalarına uymamaktadır ve çatışmalara veya performans sorunlarına neden olabilir.

Alt konu (subtopic) nedir, neden ve nasıl kullanılır?

Alt konu, başka bir konuya (ana konu olarak adlandırılır) bağlı olan bir konudur. Bu yapı, ana konunun dosyalarını doğrudan değiştirmeye gerek kalmadan, ana konunun işlevlerini ve stillerini değiştirmenize veya genişletmenize olanak tanır. Bunu yapmanın avantajı, ana konu güncellendiğinde, alt konudaki özelleştirmelerinizin silinmemesidir; bu da hem güvenli hem de bakım açısından daha uygundur.

Bir alt konu oluşturmak çok basittir. Öncelikle…/wp-content/themes/Dizin içinde yeni bir klasör oluşturun (örneğin…)mytheme-childArdından, içinde bir tane daha oluşturun.style.cssDosyanın baş kısmındaki yorumlar mutlaka şunları içermelidir:Template:Buradan üst tema dizini adını belirleyebilirsiniz.

/*
Theme Name: 我的主题子主题
Template: my-first-theme
*/

Daha sonra, alt konuların içinde…style.cssStil kurallarını ekleyin veya aynı adlı bir şablon dosyası oluşturarak üst temanın ilgili şablon dosyasını geçersiz kılın.

Temamı nasıl birden çok dil çevirisine destekleyebilirim?

Temaınızın uluslararasılaştırma (i18n) ve yerelleştirme özelliklerini desteklemesi, profesyonel geliştirme yolunda önemli bir adımdır. Kullanıcılara ön tarafta gösterilen tüm metin dizelerini kapsamak için WordPress’in sağladığı yerelleştirme fonksiyonlarını kullanmanız gerekir.

Öncelikle, tüm çevrilebilir metin parçalarında bunu kullanın.__()(Yeniden dönen değer için kullanılır) veya_e()(Bir fonksiyonu doğrudan ekrana yazdırmak için kullanılır ve aynı zamanda bir metin alanı (Text Domain) ayarlanır.)functions.phpÇin'de, kullanılır.load_theme_textdomain()Fonksiyon, çeviri dosyasını yüklüyor.

// 在 functions.php 中
function mytheme_load_textdomain() {
    load_theme_textdomain( 'my-first-theme', get_template_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'mytheme_load_textdomain' );

// 在模板文件中使用
_e( '阅读更多', 'my-first-theme' );
$heading = __( '最新文章', 'my-first-theme' );

Daha sonra, Poedit gibi araçları kullanarak tema dosyalarındaki metinleri tarayabilir ve bunlardan veri elde edebilirsiniz..potDosyaları hazırlayın ve farklı diller için ayrı versiyonlar oluşturun..po.moDosyalar, konunun altına yerleştirilir./languages/Katalogun içinde.