Sıfırdan başlamak: Özel WordPress teması oluşturmanın eksiksiz geliştirme rehberi

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

Özel bir WordPress teması geliştirmek, WordPress’in temel özelliklerini kavramanın en iyi yoludur. Alt temalar veya sayfa oluşturucuları kullanmaktan farklı olarak, sıfırdan başlamak size tam kontrol sağlar ve performansı mükemmel, belirli ihtiyaçlara uygun ve benzersiz bir web sitesi oluşturmanıza olanak tanır. Bu rehber, ortam kurulumundan temanın yayınlanmasına kadar olan tüm süreci adım adım size gösterecektir.

WordPress Temalarının Temelleri ve Dosya Yapısı

Bir WordPress teması, esasen bir… /wp-content/themes/ Katalog altındaki klasörler, bir dizi zorunlu ve isteğe bağlı dosyayı içermektedir. Bu dosyaların işlevlerini anlamak, geliştirmenin ilk adımıdır.

Çekirdek şablon dosyasının işlevi

Her konu iki ana belge içermelidir:style.cssindex.php
style.css Sadece bir stil şeması değil; aynı zamanda dosyanın baş kısmındaki yorumlar da temanın meta verilerini içeriyor. index.php Bu, varsayılan şablon dosyasıdır; WordPress daha spesifik bir şablon bulamadığında bu dosyayı kullanır.

Tavsiye edilen okuma WordPress tema geliştirmenin temel kavramları

Bu iki dosyanın yanı sıra, daha fazla şablon dosyası ekleyerek web sitesinin farklı bölümlerinin nasıl görüntüleneceğini daha hassas bir şekilde kontrol edebilirsiniz. Örneğin,header.php Web sayfasının üst kısmını (örneğin doctype, head etiketleri, web sitesi başlığı ve navigasyon) oluşturmaktan sorumludur.footer.php Sadece alt kısmın içeriğini üretmekle yükümlüdür. single.php Bu, tek bir makale sayfasını renderlemek için kullanılı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%).

Konu bilgileri ve fonksiyon dosyalarının başlatılması

style.css Bir WordPress temasının baş kısmında, temanın anahtar bilgilerini tanımlamanız gerekir; bu bilgiler, WordPress’in temanızı tanımasını sağlar.

/*
Theme Name: 我的自定义主题
Theme URI: https://example.com/my-theme
Author: 你的名字
Author URI: https://example.com
Description: 这是一个为学习目的而创建的自定义 WordPress 主题。
Version: 1.0.0
License: GPL v2 or later
Text Domain: my-custom-theme
*/

Diğer bir hayati öneme sahip belge ise… functions.phpBu bir şablon dosyası değil; bir temanın “işlevsel motorudur”. Tema desteğini eklemek, menüler ve kenar çubuklarını oluşturmak, ayrıca betikler ve stilleri dahil etmek için kullanılır. Özelleştirdiğiniz PHP kodların çoğunu buraya yazacaksınız. İyi bir uygulama, dosyanın başında sonraki çeviri işlemleri için kullanılacak metin alanlarını tanımlamaktır.

Geliştirme ortamının kurulması ve temel şablonların oluşturulması

Kodlamaya başlamadan önce, yerel bir geliştirme ortamı oluşturmak (örneğin Local, XAMPP veya Docker kullanarak) çok önemlidir. Bu, testlerin ve hataların güvenli bir şekilde yapılmasını sağlar.

Bir temanın üst ve alt kısmını oluşturmak

Tekrarlanan kod modüler hale getirmek, verimli geliştirmenin anahtarıdır. header.php Bu dosya, bir HTML belgesinin başlangıç kısmını içermekte ve WordPress fonksiyonlarını kullanarak bilgileri dinamik olarak görüntülemektedir.

Tavsiye edilen okuma WordPress Tema Geliştirme Başlangıç Kursu: Sıfırdan İlk Özel Temanızı Oluşturun

<!DOCTYPE html>
<html no numeric noise key 1007>
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <?php wp_head(); ?>
</head>
<body no numeric noise key 1004>
    <?php wp_body_open(); ?>
    <header class="site-header">
        <h1 class="site-title"><a href="/tr/</?php echo esc_url( home_url( '/' ) ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
        <p class="site-description"><?php bloginfo( 'description' ); ?></p>
    </header>

karşılık gelen footer.php Dosyayı kapatın ve etiketi kaldırın; ayrıca mutlaka ilgili işlemleri gerçekleştirin. wp_footer() Bu fonksiyon, eklentilerin ve temaların doğru bir şekilde yüklenmesi için gereklidir.

index.php Burada kullanabilirsiniz. get_header()get_footer() Bu fonksiyonlar, onları içe aktarmak için kullanılır.

İndeks ve makale sayfa şablonlarını geliştirme

index.php Bu, ana şablonunuzdur. Tipik bir uygulama, WordPress’ın makaleleri göstermek için kullandığı bir döngüyü (The Loop) içermesidir.

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
<?php get_header(); ?>
<main class="site-main">
    
            <article no numeric noise key 1010>
                <h2><a href="/tr/</?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                <div class="entry-content">
                    <?php the_excerpt(); ?>
                </div>
            </article>
        
        <p><?php esc_html_e( '暂无文章。', 'my-custom-theme' ); ?></p>
    <?php endif; ?>
</main>

Bir makale için, aşağıdakileri yapmanız gerekecektir: single.phpYapısı indekse benzer, ancak genellikle farklı amaçlar için kullanılır. the_content() Tüm metni çıktı olarak verin ve yorum şablonunu da içerebilecek şekilde ayarlayın. comments_template()

Konu özelliklerinin geliştirilmesi ve stil entegrasyonu

geçmek (bir fatura veya teftiş vb.) functions.php Dosyalar sayesinde temanız için bir dizi modern özelliği etkinleştirebilir ve ön uç kaynaklarını (front-end resources) doğru bir şekilde yönetebilirsiniz.

Kayıt menüsü ve yan menü.

Öncelikle, kullanın. add_theme_support() Fonksiyon tanımlama özelliği, makale özet resimleri (özel görseller) ve HTML5 etiketleri gibi işlevleri desteklemektedir. Daha sonra, bu özellikler kullanılarak… register_nav_menus() Bir fonksiyon, navigasyon menüsü öğelerinin konumlarını kaydetmek için kullanılır.

Tavsiye edilen okuma WordPress Tema Geliştirme Başlangıcı: Sıfırdan İlk Reaktif Temanızı Oluşturun

function my_theme_setup() {
    add_theme_support( 'post-thumbnails' );
    add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' ) );
    register_nav_menus( array(
        'primary' => __( '主导航菜单', 'my-custom-theme' ),
        'footer'  => __( '底部菜单', 'my-custom-theme' ),
    ) );
}
add_action( 'after_setup_theme', 'my_theme_setup' );

Bir araç çubuğu (yan çubuk) bölgesi oluşturmak için şunu kullanın: register_sidebar() Fonksiyon. Daha sonra şablon içinde, bunu kullanarak… dynamic_sidebar() Gelip onu göster.

Doğru şekilde yüklü olan betikler ve stiller…

Asla şablonlarda CSS veya JS dosyalarına doğrudan bağlantı (hard link) eklemeyin. Bunun yerine, bu dosyaların bulunduğu konumu referans olarak kullanmalısınız. 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 yönetilmesini sağlar ve tekrarlanan yüklemelerin önüne geçer.

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.
function my_theme_scripts() {
    // 加载主题主样式表
    wp_enqueue_style( 'my-theme-style', get_stylesheet_uri(), array(), '1.0.0' );
    // 加载主 JavaScript 文件
    wp_enqueue_script( 'my-theme-script', get_template_directory_uri() . '/js/main.js', array('jquery'), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_theme_scripts' );

Şablon Seviyeleri ve Gelişmiş Özellikler

WordPress’in şablon hiyerarşisini anlamak, esnek temalar oluşturmanın anahtarıdır. WordPress, ziyaret edilen sayfanın türüne göre en uygun şablon dosyasını otomatik olarak seçer.

Belirli bir sayfayı oluşturmak için şablon hiyerarşisinden yararlanın.

Örneğin, ID’si 5 olan bir makaleye erişildiğinde, WordPress sırayla şunları arar:single-post-5.php -> single-post.php -> single.php -> singular.php -> index.phpBelirli kategoriler veya sayfalar için şablonlar oluşturabilirsiniz, örneğin… category-news.phppage-about.php

Arama formunu ve sayfa navigasyonunu gerçekleştirin.

Bir temada arama özelliğini entegre etmek çok basittir. Bunu yapmak için bir arama fonksiyonu oluşturmanız yeterlidir. searchform.php Dosya, konu şablonuna uygun bir arama formu içermektedir. Daha sonra, ihtiyaç duyulan her yerde bu formu kullanabilirsiniz. get_search_form() Fonksiyon onu çağırır.

Sayfa sayacı (pagination) için, kullanmanın yanı sıra… the_posts_navigation()Ayrıca şunları da kullanabilirsiniz: the_posts_pagination() Sayfa numaraları içeren bağlantılar oluşturmak, genellikle kullanıcı deneyimi ve SEO açısından daha faydalıdır.

Konu özelleştiricisi desteği ekleyin.

Kullanıcıların arka planda “Görünüm -> Özelleştir” bölümünden bazı ayarları (örneğin logosu, renkleri) değiştirebilmelerini sağlamak için WordPress Özelleştirici API’sini kullanabilirsiniz. Bu işlem, belirli kodların yazılmasını ve WordPress sisteminin bu ayarları yönetmesini sağlar. functions.php Çince'de kullanılır. $wp_customize Nesnelere ayarlar, kontroller ve diğer öğeler eklemek için…

function my_theme_customize_register( $wp_customize ) {
    // 添加一个“主题选项”板块
    $wp_customize->add_section( 'theme_options', array(
        'title'    => __( '主题选项', 'my-custom-theme' ),
        'priority' => 130,
    ) );
    // 在板块中添加一个“页脚文本”设置
    $wp_customize->add_setting( 'footer_text', array(
        'default'           => __( '版权所有', 'my-custom-theme' ),
        'sanitize_callback' => 'sanitize_text_field',
    ) );
    $wp_customize->add_control( 'footer_text', array(
        'label'   => __( '页脚文本', 'my-custom-theme' ),
        'section' => 'theme_options',
        'type'    => 'text',
    ) );
}
add_action( 'customize_register', 'my_theme_customize_register' );

Sonra… footer.php Çin'de, kullanılır. get_theme_mod( 'footer_text' ) Kullanıcının ayarladığı değeri çıkarın.

Özetle.

Sıfırdan bir WordPress teması oluşturmak, proje yapısının planlanmasından PHP şablonlarının geliştirilmesine, işlevsel fonksiyonların yazılmasından ön uç kaynakların yönetimine kadar birçok yönü kapsayan sistematik bir iştir. Temel nokta, şablon hiyerarşisini anlamak, WordPress’in yerleşik fonksiyonlarını ve eklentilerini esnek bir şekilde kullanmak ve en iyi uygulamalara (örneğin betiklerin doğru sıralanması, çeviri desteği gibi) uymaktır. Kendi temanızı oluşturarak sadece kendi ihtiyaçlarınıza tam olarak uygun bir web sitesi görünümü elde etmekle kalmaz, aynı zamanda WordPress’in çalışma mekanizmasını da derinlemesine öğrenir ve daha karmaşık eklentiler veya uygulamalar geliştirmek için sağlam bir temel atarsınız. Unutmayın; sürekli test etmek, resmi dokümantasyonları okumak ve temel temaların kodlarını incelemek, becerilerinizi geliştirmenin en iyi yollarındandır.

Sıkça Sorulan Sorular.

Bir WordPress teması oluşturmak için hangi teknikleri bilmek gereklidir?

Temel PHP bilgilerine sahip olmanız gerekiyor; bu bilgiler, şablon mantığını ve işlevsel fonksiyonları yazmak için gereklidir. Ayrıca, sayfa yapısını ve stilini oluşturmak için HTML ve CSS ile aşina olmanız önemlidir. JavaScript (özellikle jQuery) konusunda temel bir bilgiye sahip olmak, etkileşimli özellikler eklemenize yardımcı olacaktır. En önemlisi, WordPress’e özgü şablon etiketlerini, eklentileri (Actions & Filters) ve döngüleri (The Loop) kullanmayı öğrenmelisiniz.

Bir tema geliştirildikten sonra, başkalarının kullanımına sunmak için nasıl yayınlanır?

Yayınlamadan önce, farklı ortamlarda ve ekran boyutlarında uyumluluk testleri de dahil olmak üzere kapsamlı bir test yapmalısınız ve WordPress tema geliştirme standartlarına uyduğunuzdan emin olmalısınız. Daha sonra, tema dosyalarınızı .zip formatında sıkıştırıp WordPress arayüzü üzerinden doğrudan yükleyebilirsiniz. WordPress’in resmi tema dizinine göndermek istiyorsanız, güvenlik, kod stilı ve uluslararasılaştırma gibi konularda daha katı kod inceleme standartlarını karşılamanız gerekmektedir.

Özel temaların gelecekteki güncellemelerle uyumluluğu nasıl sağlanır?

Uyumluluğu sağlamak için WordPress’in çekirdek dosyalarını doğrudan değiştirmekten kaçınmalısınız. Özellikler eklemek için mümkün olduğunca WordPress tarafından sağlanan fonksiyonları ve işlevleri (hook’ları) kullanın. Kodunuzda, ön tarafa (frontend) gönderilen veriler üzerinde her zaman escape fonksiyonlarını kullanın. esc_htmlesc_urlKullanıcılardan alınan veriler üzerinde temizleme işlemleri yapmak için temizleme fonksiyonları (cleaning functions) kullanılır. sanitize_text_fieldWordPress’in ana sürüm güncellemelerini takip edin ve temanızı zamanında test edin.

Alt temalar ve özel temalar nasıl seçilmelidir?

Eğer sadece mevcut bir temayı değiştirmek istiyorsanız (örneğin renkleri veya düzeni ayarlamak istiyorsanız), alt tema oluşturmak daha hızlı ve güvenli bir seçenektir; bu sayede ana temanın güncellenmesi sırasında yaptığınız değişiklikleri koruyabilirsiniz. Ancak, benzersiz bir tasarıma, yepyeni özelliklere veya belirli bir içerik türüne sahip bir web sitesine ihtiyacınız varsa ve mevcut temalar bu ihtiyaçları basit değişikliklerle karşılayamıyorsa, sıfırdan özel bir tema oluşturmak daha uygun bir seçenektir. Bu, size en fazla esneklik ve kontrolü sağlar.