WordPress temaları, bir web sitesinin görünümü ve işlevlerinin temelini oluşturur. Hazır temalar kullanmanın aksine, tema geliştirme becerilerine sahip olmak, web sitesi tasarımının her detayını tamamen kontrol etmenizi ve iş ihtiyaçlarınıza tam olarak uygun, benzersiz ve yüksek performanslı bir web sitesi oluşturmanızı sağlar. Bu rehber, en temel ortam kurulumlarından başlayarak, ileri seviye özellik geliştirmeye kadar adım adım size yol gösterecek ve sonunda kendi özel temanınızı oluşturmanıza olanak tanıyacaktır.
Geliştirme Ortamı ve Altyapı Kurulumu
İlk satır kodu yazmaya başlamadan önce, verimli bir yerel geliştirme ortamı şarttır. PHP, MySQL ve Apache/Nginx içeren bir yerel sunucu hızlı bir şekilde kurmak için Local by Flywheel, XAMPP veya MAMP gibi araçları kullanmanızı öneririz.
Bir konu oluşturmak için gerekli dosyalar
Bir WordPress temasının en temel dosya yapısı, iki çekirdek dosya ile başlar. İlki stil şeması dosyasıdır. style.cssBu dosya sadece tema stilini tanımlayan bir dosya değil; aynı zamanda dosyanın başındaki yorumlar, WordPress’in temayı tanımasında “kimlik kartı” görevi görür. İkincisi ise çekirdek şablon dosyasıdır. index.phpBu, temanın varsayılan giriş dosyasıdır; daha spesifik tema dosyaları mevcut değilse, WordPress sayfayı renderlemek için bu dosyayı kullanır.
Tavsiye edilen okuma WordPress Tema Geliştirme Kılavuzu: Sıfırdan Başlayarak Özel Şablonlar Oluşturma。
Tipik bir… style.css Dosya başlığı örneği aşağıdaki gibidir:
/*
Theme Name: 我的第一个自定义主题
Theme URI: https://example.com/my-theme
Author: 你的名字
Author URI: https://yourwebsite.com
Description: 这是一个用于学习 WordPress 主题开发的自定义主题。
Version: 1.0
License: GPL v2 or later
Text Domain: my-custom-theme
*/ Şablon hiyerarşik yapısını anlamak
WordPress, farklı türdeki istekler için hangi şablon dosyasının kullanılacağını belirlemek için gelişmiş bir şablon hiyerarşisi sistemine sahiptir. Örneğin, bir blog makalesine erişildiğinde, WordPress sırayla şablonları arar… single-post.php、single.phpVe en sonunda… index.phpBu hiyerarşik ilişkiyi (ana sayfa, makale sayfası, sayfa, kategori arşiv sayfası vb. ile ilgili şablon dosyaları) anlamak, verimli geliştirmenin anahtarıdır. Çünkü farklı içerik türleri için özel düzenlemeler oluşturmanıza olanak tanır.
Çekirdek şablon dosyası ve tema döngüsü
Temanın işlevleri esas olarak bir dizi PHP şablon dosyası aracılığıyla gerçekleştirilir. Her dosya, web sitesinin belirli bir bölümünden sorumludur.
Web sitesinin üst kısmını (header) ve alt kısmını (footer) oluşturmak
Her sayfada ortak olarak kullanılan kodların modüler hale getirilmesi, profesyonel geliştirmenin ilk adımıdır.header.php Dosyalar genellikle belge türü beyanlarını içerir. Bölgeler (CSS ve JS dosyalarının yüklenmesi, meta etiketlerin ayarlanması) ve web sitesinin üst kısmındaki ortak alanlar (örneğin logo ve ana navigasyon). Bunları kullanabilirsiniz. get_header() Bu fonksiyon, herhangi bir şablon içinde kullanılabilir.
Aynı şekilde,footer.php Dosya, web sitesinin alt kısmında yer alan ortak içerikleri (telif hakkı bilgileri, alt menü vb.) ve sayfanın son kısmını içermektedir. 、 Etiketler, aracılığıyla… get_footer() Fonksiyonun tanıtımı.
Tavsiye edilen okuma WordPress Tema Geliştirme Kılavuzu: Sıfırdan Başlayarak Profesyonel Web Sitesi Temaları Oluşturma。
WordPress’in ana döngüsünü (main loop) kavramak
Ana Döngü (The Loop), WordPress temalarının temelini oluşturan bir bileşendir ve veritabanından makale içeriklerini alıp ekrana göstermek için kullanılır. Temel yapısı şu şekildedir:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<div class="entry-content">
<?php the_content(); ?>
</div>
<?php endwhile; else : ?>
<p><p><strong>Üzgünüm, herhangi bir içerik bulunamadı.</strong></p></p>
<?php endif; ?> Döngü içinde, makale bilgilerini çıkarmak için bir dizi Şablon Etiketi (Template Tag) kullanabilirsiniz, örneğin: the_title() Çıkış Başlığı:the_content() Lütfen içeriğin tamamını sağlayın, böylece çeviriyi yapabilirim. Eğer metin parçaları varsa, bunları da ayrı ayrı belirtin.the_excerpt() Çıktı özeti,the_permalink() Makale bağlantısını alın.the_post_thumbnail() Özel görüntüler gibi içerikleri de sunun.
Konu Özellikleri ve Özelleştirilebilir Özellikler Geliştirme
Mükemmel bir tema sadece estetik bir arayüze sahip olmakla kalmamalı, aynı zamanda güçlü bir arka uç yapılandırma özelliğine de sahip olmalıdır.
Temanın temel özelliklerini etkinleştirin.
geçmek (bir fatura veya teftiş vb.) add_theme_support() Bir fonksiyon için, temanızın hangi WordPress çekirdek özelliklerini desteklediğini belirtebilirsiniz. Bu genellikle… functions.php Dosyada gerekli ayarlamalar tamamlanmıştır. Örneğin, makalelere özel görsellerin ve özelleştirilmiş logoların eklenmesini sağlayan kod aşağıdaki gibidir:
function my_theme_setup() {
add_theme_support( 'post-thumbnails' );
add_theme_support( 'custom-logo', array(
'height' => 100,
'width' => 400,
) );
add_theme_support( 'title-tag' ); // 让 WordPress 管理页面标题
}
add_action( 'after_setup_theme', 'my_theme_setup' ); Menü ve kenar çubuğu alanları oluşturun.
WordPress, kullanıcıların navigasyon menülerini arka planda görsel olarak yönetmelerine olanak tanır. Sizinin yapmanız gereken… functions.php Çince'de kullanılır. register_nav_menus() Bir fonksiyon kullanarak menü öğelerini (“Ana Menü” ve “Alt Menü” gibi) kaydedin. Daha sonra, şablon dosyasında… header.php) içinde kullanılır wp_nav_menu() Bunu göstermek için bir fonksiyon kullanın.
Bir kenar çubuğu (veya “araç çubuğu” olarak da adlandırılır) da kayıt olmayı gerektirir. Kullanımı için… register_sidebar() Fonksiyon tanım alanları belirlendikten sonra, kullanıcılar “Görünüm -> Araçlar” bölümünden bu alanlara çeşitli araçları sürükleyip bırakabilirler. Şablonlarda bu özellik kullanılmaktadır. dynamic_sidebar() Bir fonksiyon, araç çubuğu bölgesinin içeriğini çıktı olarak verir.
Tavsiye edilen okuma Sıfırdan Bir: WordPress Tema Geliştirme Süreci Rehberi ve Pratik Teknikler。
Script ve stil dosyalarını içe aktarın.
Doğru kaynakların nasıl dahil edileceği çok önemlidir. Asla şablon dosyalarına kaynakları doğrudan ve sabit bir şekilde yazmayın. 或 Etiketler: CSS ve JavaScript dosyalarınızı aşağıdaki yöntemlerle paylaşmalısınız: wp_enqueue_scripts Kancalar, eklentilerin sıraya göre yüklenmesini sağlar. Bu sayede bağımlılıklar doğru bir şekilde yönetilir ve diğer eklentilerle çakışmalar olmaz.
function my_theme_scripts() {
wp_enqueue_style( 'my-theme-style', get_stylesheet_uri() );
wp_enqueue_script( 'my-theme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_theme_scripts' ); Gelişmiş Tema Özellikleri ve Özelleştirmeler
Temel özellikler tamamlandıktan sonra, temanın profesyonelliğini ve esnekliğini artırmak için daha gelişmiş teknolojiler kullanabilirsiniz.
Özel sayfa şablonları geliştirmek
Belirli bir sayfa için özgün bir düzen oluşturabilirsiniz. Yapmanız gereken, herhangi bir şablon dosyasının en üstüne belirli bir yorum eklemektir. WordPress yönetim paneli, sayfa oluşturulduğunda veya düzenlendiğinde bu yorumu seçilebilir bir şablon olarak tanıyacaktır. Örneğin, “Tam Genişlikli Sayfa” adında bir şablon oluşturmak için şu adımları izleyin:
<?php
/**
* Template Name: 全宽页面
* Description: 一个没有侧边栏的全宽度页面模板
*/
get_header(); ?>
// ... 全宽布局的代码 ...
<?php get_footer(); ?> Makale formatını ve özelleştirilmiş makale türlerini gerçekleştirmek
Makale formatları (“Post Formats”) olan “Günlük”, “Görsel Galerisi”, “Video” vb., farklı türdeki blog makalelerine özgü stiller sunabilir. Kullanımı oldukça kolaydır. add_theme_support( ‘post-formats’, array( ‘aside’, ‘gallery’ ) ) Etkinleştirmek için ve şablon içinde bununla uyumlu olarak… get_post_format() Stil kontrolü için koşullu etiketler (conditional tags) kullanılır.
Daha karmaşık içerikler için, örneğin “ürünler” veya “portfolyolar” gibi, özel makale türleri (Custom Post Types) oluşturmanız gerekebilir. Bu genellikle aşağıdaki adımlarla yapılır: register_post_type() Fonksiyon, eklenti veya temada bulunmaktadır. functions.php Bu işlem tamamlandığında, WordPress arayüzüne yepyeni bir içerik yönetim modülü eklenebilir.
Özelleştirici API’sini entegre etmek
WordPress’ın Özelleştirici (Customizer) aracı, temaların görünüm ayarlarını gerçek zamanlı olarak önizlemenizi sağlar. Özelleştirici API’si sayesinde temanıza renk seçicileri, dosya yükleme kontrolleri, açılır menüler gibi ayar seçenekleri ekleyebilir ve böylece kullanıcıların web sitesinin görünümünü kodla uğraşmadan değiştirmesini sağlayabilirsiniz. Temelde kullanılan teknoloji… $wp_customize->add_setting() 和 $wp_customize->add_control() Yöntem.
Özetle.
WordPress tema geliştirme, yapıdan stilere, temel özelliklerden gelişmiş özelleştirmelere kadar sistematik bir süreçtir. Ortamı kurmak ve temel dosyaları oluşturmakla başlayarak, adım adım şablon seviyesine, ana döngüye ve çekirdek özelliklere derinleşilir. Daha sonra, menülerin kaydedilmesi, araç çubuğu alanlarının kullanılması ve kaynakların doğru şekilde dahil edilmesiyle temanın kullanılabilirliği artırılır. Son olarak, özel sayfa şablonları, makale formatları, özel makale türleri ve özelleştirici API’leri kullanarak, güçlü özelliklere sahip, son derece esnek ve kullanıcı deneyimi yüksek profesyonel seviye temalar oluşturabilirsiniz. Bu beceriyi mükemmelleştirmenin en iyi yolu, sürekli pratik yapmak ve resmi dokümantasyon ile kaliteli kodlara başvurmaktır.
Sıkça Sorulan Sorular.
Konu geliştirme için PHP bilmek zorunda mıyım?
Evet, PHP, WordPress’in temel programlama dilidir ve temaların şablon dosyaları çoğunlukla PHP kodundan oluşur. Tema kodlarını anlayıp yazabilmek için PHP’nin temel sözdizimini, fonksiyonlarını, koşullu ifadelerini ve döngülerini bilmelisiniz. HTML ve CSS, ön uç arayüzünü oluşturmak için gerekli becerilerdir; JavaScript ise etkileşimli özellikler için kullanılır.
Neden temamdaki değişiklikler güncellemeden sonra kayboldu?
Bunun nedeni, kullanmakta olduğunuz üçüncü parti tema dosyalarını doğrudan değiştirmenizdir. Temanın yeni bir sürümü yayınlandığında, yaptığınız tüm değişiklikler silinecektir. Doğru yöntem, bir alt tema (Child Theme) oluşturmaktır. Alt tema yalnızca sizin özelleştirdiğiniz kısımları içerir. style.css、functions.php Şablon dosyası ile birlikte, ebeveyn temanın tüm özelliklerini devralır ve ebeveyn tema güncellendiğinde özelleştirdiğiniz içerikler korunur.
fonksiyonlar.php dosyasının özel bir işlevi var mı?
functions.php Dosya, temanızın “işlev merkezidir”. Bu, çağrılması gereken bir fonksiyon kitabı değil; temanız başlatıldığında otomatik olarak WordPress tarafından yüklenir. Buraya eklediğiniz kodlar (tema özelliklerini etkinleştirmek, menüler kaydetmek, işlem sırasına koymak, özel fonksiyonlar tanımlamak vb.) hem temanızın hem de WordPress’in temel işlevlerinin genişletilmesi ve değiştirilmesi için geçerlidir.
Nasıl temamı çok dilli olarak destekleyebilirim?
Bir temanın çok dilli olmasını (uluslararasılaştırma ve yerelleştirme) desteklemek iyi bir uygulamadır. İki şeyi doğru yapmanız gerekiyor: Öncelikle, temadaki tüm çevrilmeye ihtiyaç duyan metinlerde WordPress’in çeviri fonksiyonlarını kullanmalısınız (örneğin…). __()、_e()) Bunları paketleyin ve onlara belirli bir konum atayın. style.css Öncelikle, belirtilen metin alanları (Text Domain) tanımlanmalıdır. Daha sonra, Poedit gibi araçlar kullanılarak, kod içindeki çeviri metinlerine dayanarak gerekli çeviriler yapılmalıdır. .pot Şablon dosyası ve bunun üzerine farklı diller için içeriklerin oluşturulması. .po 和 .mo Çeviri dosyası.
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.
- Mükemmel bir WordPress teması seçmenin kılavuzu: Çerçeveden özelleştirmelere kadar kapsamlı bir inceleme
- WordPress Tema Geliştirme: Başlangıçtan Uzmanlığa – Kişiselleştirilmiş Web Siteleri Oluşturma Kılavuzu
- Sıfırdan başlayarak WordPress tema geliştirme: Farklı bir web sitesi arayüzü oluşturma
- WordPress Tema Geliştirme Kılavuzu: Sıfırdan Başlayarak Özelleştirilmiş Web Siteleri Oluşturma
- WordPress Tema Geliştirme Kılavuzu: Sıfırdan Uzmanlığa Pratik Bir Eğitim Kursu