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.
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.php 或 page.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:
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' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</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.
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 Domain 和 Domain 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.
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
- Önsöz: Neden WordPress ile geliştirme yapmayı seçtik?
- Çekici bir WordPress teması, bir web sitesinin başarısının temelidir.