WordPress Tema Geliştirme Başlangıç Kılavuzu: İlk Temanızı Sıfırdan Oluşturun

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

Başlamadan önce yapılması gereken hazırlık işlemleri

Herhangi bir kod yazmaya başlamadan önce, geliştirme ortamınızın hazır olduğundan emin olmanız gerekiyor. Öncelikle, XAMPP, MAMP gibi yerel bir sunucu ortamına veya Docker kullanmanıza ihtiyacınız var. İkincisi, bir kod editörü şarttır; Visual Studio Code veya PHPStorm gibi araçlar iyi seçeneklerdir. En önemlisi, en yeni sürümdeki WordPress’i yüklemeniz ve düzgün bir şekilde çalıştığından emin olmanızdır.

Bundan sonra, WordPress kurulum dizininizin altındaki…wp-content/themesDosyada, yeni bir klasör oluşturun; bu klasör temanızın dizini olacaktır. Örneğin, ona “tema_klasörü” adını verebilirsiniz.my-first-themeBu dizinin adı doğrudan tema tanımlayıcınız olacak; bu nedenle küçük harfler, rakamlar ve tireler kullanmanız önerilir.

Temalar klasöründe, bir WordPress temasını başlatmak için gerekli ve asgari düzeydeki iki dosya bulunmaktadır:style.cssindex.phpBu özellikler olmadan, WordPress arka plandaki “Görünüm” -> “Temalar” listesinde temanızı tanıyamaz.

Tavsiye edilen okuma WordPress Tema Geliştirme İle Sıfırdan Başlama: Kişiselleştirilmiş Web Siteleri Oluşturmanın Kapsamlı Rehberi

Konunun temel dosya yapısını anlamak

İşlevsel olarak tam bir WordPress teması, belirli bir adlandırma kuralına uyan bir dizi şablon dosyasından oluşur. Her dosya, web sitesinin farklı bölümlerinin renderlanmasından sorumludur.

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

Stil Şemaları ve Tema Bilgi Beyanları

style.cssDosyalar yalnızca CSS stillerini yazmak için kullanılmaz; aynı zamanda dosyanın baş kısmındaki yorumlar bölümü, WordPress’in temanın meta verilerini (meta data) okuması için kullanılan alandır. Bu bölüm dosyanın en üst kısmında olmalı ve belirli bir formata uymalıdır.

/*
Theme Name: 我的第一个主题
Theme URI: http://example.com/my-first-theme/
Author: 你的名字
Author URI: http://example.com/
Description: 这是一个用于学习的入门级WordPress主题。
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-first-theme
*/

“Text Domain”, uluslararasılaştırma (internationalization) amacıyla kullanılır ve çeviri dosyalarının daha sonra yüklenmesi için önemli bir tanımlayıcıdır. Bu bilgileri doldurduktan sonra, WordPress arayüzündeki tema sayfasını yenileyin; “İlk Temam” adında bir küçük resim görmelisiniz.

Ana şablon dosyasının işlevi

index.phpBu, temanızın ana şablon dosyasıdır ve aynı zamanda web sitesinin varsayılan “geri dönüş” (default fallback) şablonudur. WordPress, daha spesifik bir şablon dosyası bulamadığında…single.phppage.phpBu durumda kullanılır.index.phpEn temel yapısı, WordPress’in başlık bölümünün, ana döngü içeriğinin ve son bölümünün çağrılmasından oluşur.

<?php get_header(); ?>

<main id="main">
    &lt;?php
    if ( have_posts() ) :
        while ( have_posts() ) : the_post();
            // 输出文章内容
            the_title( &#039;<h2>', '</h2>' );
            the_content();
        endwhile;
    else :
        echo '<p>没有找到任何文章。</p>';
    endif;
    ?&gt;
</main>

<?php get_footer(); ?>

Temel şablonları genişletmek ve yeni özellikler eklemek

Sadeceindex.phpstyle.cssBu yeterli değil; başlık, son kısım ve kenar çubukları gibi bölümleri ayırmamız gerekiyor ki yapı daha net olsun ve temanın temel işlevlerini dahil edebilelim.

Tavsiye edilen okuma Sıfırdan Başlayarak: Kendi WordPress Temanınızı Geliştirmeyi Adım Adım Öğrenin

Başlık ve son kısmı içeren şablonları ayırın.

Oluşturheader.phpBu dosya, belge türü beyanlarını ve HTML kodunu içermektedir.Bazı bölümler ve web sitesinin başlıkları ile navigasyon alanları. Kullanımı…wp_head()Bu “kancalar”, eklentilerin ve WordPress çekirdeğinin gerekli betikleri ve stilleri doğru bir şekilde yüklemesini sağlamak için kullanılır.

<!DOCTYPE html>
<html no numeric noise key 1006>
<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 1003>
<?php wp_body_open(); ?>
<header>
    <h1><a href="/tr/</?php echo esc_url( home_url( '/' ) ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
</header>

Oluşturfooter.phpBu dosya, web sitesinin alt bilgilerini (footer bilgilerini) içermekte ve dosyanın sonunda belirli bir işlem gerçekleştirilmektedir.wp_footer()Kanca.

<footer>
    <p>©</p>
</footer>
<?php wp_footer(); ?>
</body>
\n

Böylece,index.phpOrada, kullanabiliriz.get_header()get_footer()Bu fonksiyonlar, onları içe aktarmak için kullanılı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

Function file creation

functions.phpBu, temanın “beyni” olarak adlandırılır ve işlevler eklemek, menüler oluşturmak, özel görselleri etkinleştirmek, kenar çubuklarını tanımlamak gibi işlemler için kullanılır. Bir şablon dosyası değil; teman başlatıldığında otomatik olarak yüklenen bir PHP dosyasıdır.

Aşağıda…functions.phpTemel bir örnek:

<?php
// 启用文章和页面的特色图像功能
add_theme_support( 'post-thumbnails' );

// 注册一个导航菜单位置
function my_first_theme_register_menus() {
    register_nav_menus(
        array(
            'primary-menu' => __( '主导航菜单', 'my-first-theme' ),
        )
    );
}
add_action( 'init', 'my_first_theme_register_menus' );

// 引入主题的样式表和脚本
function my_first_theme_enqueue_scripts() {
    // 引入主样式表
    wp_enqueue_style( 'my-first-theme-style', get_stylesheet_uri(), array(), '1.0' );
    // 引入一个自定义的JavaScript文件
    wp_enqueue_script( 'my-first-theme-script', get_template_directory_uri() . '/js/script.js', array('jquery'), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_first_theme_enqueue_scripts' );
?>

Daha fazla şablon dosyası oluşturun.

Farklı türdeki sayfaların daha uygun bir düzenlemesine sahip olabilmesi için, daha fazla özel şablon dosyası oluşturmamız gerekiyor.

Tavsiye edilen okuma Kurulumdan ustalığa: WordPress web sitesi oluşturmak için eksiksiz kılavuz ve tam analiz için pratik ipuçları

Makale Tek Sayfası ve Sayfa Şablonları

single.phpTek bir blog makalesini renderlemek için kullanılır. Yapısı şu şekildedir:index.phpBenzer, ancak genellikle yorum şablonları içerir.comments.phpÇağrı.

page.phpStatik sayfaları renderlemek için kullanılır. Genellikle kategoriler, etiketler gibi meta verileri göstermez; bunun yerine sayfa içeriğine daha fazla odaklanır.

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.

Makale Arşiv Listesi Şablonu

archive.phpKategorileri, etiketleri, yazarları, tarihleri ve diğer arşiv sayfalarını göstermek için kullanılır. Koşullu etiketler gibi araçları kullanabilirsiniz.is_category()is_tag()Farklı arşiv türlerini ayırt etmek ve ilgili başlıkları göstermek için…

404 Hata Sayfası Oluşturma

404.phpKullanıcılar mevcut olmayan bir URL’ye eriştiğinde görüntülenen sayfadır. İyi bir 404 sayfası, kullanıcılara ihtiyaç duydukları içeriği bulmalarında yardımcı olacak dostane bir mesaj, bir arama kutusu ve ana sayfaya bağlantılar içermelidir.

Özetle.

Bu rehber sayesinde, klasör ve temel dosyalar oluşturmaktan, şablon hiyerarşisini anlamaya, tema özelliklerini genişletmeye ve özel şablonlar oluşturmaya kadar olan tüm süreci tamamladınız. Temel bir yapıya sahip, WordPress tarafından tanınan ve genişletilebilir özelliklere sahip bir tema oluşturdunuz. Her ne kadar basit görünse de, tüm temel kavramları içermektedir. Bundan sonra, şablon etiketlerini, özelleştirilmiş sorguları, WordPress döngülerinin daha fazla kullanımını ve özel makale türleri ile tema özelleştirme seçeneklerini öğrenerek temanızın işlevselliğini ve kişiselliğini daha da artırabilirsiniz.

Sıkça Sorulan Sorular.

Neden temam WordPress arayüzünde görünmüyor?
Lütfen öncelikle konu dizininizin doğru yere yerleştirilip yerleştirilmediğini kontrol edin.wp-content/themes/Klasörün içinde. İkincisi, klasörün gerekli dosyaları içerip içermediğinden emin olun.style.cssindex.phpDosya. Son olarak, açın.style.cssDosya ile ilgili olarak, üst kısmındaki konu bilgileri ve not bloğunun formatının tamamen doğru olduğundan emin olun, özellikle…Theme Name:Bu satır.

Kendi temama özel bir Logo desteği nasıl eklerim?

You need to do something related to the theme.functions.phpDosyaya, bu özelliği etkinleştirmek için bir satır kod ekleyin. Kullanımı şu şekildedir:add_theme_support( ‘custom-logo’ )Bu özellik etkinleştirildikten sonra, kullanıcılar “Görünüm” -> “Özelleştir” -> “Site Kimliği” bölümünden Logo yükleyebilir ve ayarlayabilirler. Ayrıca…header.phpUygun yerde kullanın.the_custom_logo()Bunu göstermek için bir fonksiyon kullanın.

Functions.php dosyası ve eklentiler (plugins) arasındaki temel farklar nelerdir?

functions.phpBu özellikler, aktif olan temaya sıkı sıkıya bağlıdır. Temayı değiştirirseniz, bu özellikler artık kullanılamaz hale gelir. Öte yandan, eklentilerin işlevleri temadan bağımsızdır; hangi tema kullanılırsa kullanılsın, eklenti etkin durumdaysa işlevleri devam eder. Bu nedenle, eğer özellikleriniz temanın görsel sunumuyla (örneğin, kayıt menüsü konumu, düzenin tanımlanması) yakından ilgiliyse, bunları temanın içine yerleştirmek daha uygun olacaktır.functions.phpEğer bu özellikler genel kullanıma yönelikse (örneğin iletişim formları, SEO optimizasyonu gibi), bunların eklenti (plugin) olarak geliştirilmesi daha uygun olur.

Nasıl temamı çok dilli olarak destekleyebilirim?

İki şeyi iyi yapman gerekiyor. Birincisi, geliştirme sırasında, kullanıcılara yönelik tüm metinler için çeviri fonksiyonlarını kullanarak bu metinleri sarman (yani bu metinleri çeviri fonksiyonlarının kontrolü altına alman). Örneğin:__( ‘文本’, ‘my-first-theme’ )_e( ‘文本’, ‘my-first-theme’ )Ve emin olun…‘my-first-theme’style.cssİkincisi, Poedit gibi bir araç kullanarak temanızın kodundan çevrilecek tüm metinleri ayıklayın ve bir çeviri dosyası oluşturun. Bu çeviri dosyası, daha önce belirtilen “Text Domain” ile uyumlu olmalıdır..potDosyalar, daha sonra çevirmenler tarafından ilgili dildeki içeriklerle oluşturulur..poVe derlenen.moDosyayı alın ve konunun içine yerleştirin./languages/Katalogun içinde.