Geliştirme ortamını hazırlamak ve konu yapısını anlamak.
Herhangi bir kod satırını yazmaya başlamadan önce, geliştirme ortamını doğru bir şekilde yapılandırmak çok önemli bir adımdır. Verimli bir yerel geliştirme ortamı, tamamlanmamış kodu çevrimiçi sunucuya dağıtmadan değişiklikleri hızlı bir şekilde önizlemenizi sağlar. Local by Flywheel, XAMPP veya MAMP gibi araçları kullanarak, yerel bilgisayarınızda Apache, MySQL ve PHP içeren entegre bir ortam oluşturmanız önerilir. Aynı zamanda, VS Code, PHPStorm gibi kullanışlı bir kod editörü ve tarayıcı geliştirici araçları da sizin için vazgeçilmez yardımcılarınız olacaktır.
Bundan sonra, bir WordPress temasının yapısını derinlemesine anlamanız gerekiyor. En temel bir tema yalnızca iki dosyaya ihtiyaç duyar:style.css 和 index.phpAncak, işlevsel olarak tam donanımlı ve yapısal olarak açık bir tema, birçok şablon dosyası ve klasör içerecektir.
Core File and Directory Parsing
Konu kök dizininde bulunan style.css Dosya yalnızca bir stil şeması (stylesheet) değil; aynı zamanda bir temanın “kimlik kartı”dır. Dosyanın baş kısmındaki yorum blokları, temanın tüm meta bilgilerini içerir; örneğin temanın adı, yazarı, açıklaması, sürüm numarası vb. WordPress, bu bilgileri okuyarak arka planda temanızı tanır.
Tavsiye edilen okuma WordPress Tema Geliştirme Kılavuzu: Sıfırdan Yüksek Performanslı Özel Temalar Oluşturmak。
/*
Theme Name: My First Theme
Theme URI: https://example.com/my-first-theme
Author: Your Name
Author URI: https://example.com
Description: A custom theme built from scratch.
Version: 1.0
License: GNU General Public License v2 or later
Text Domain: my-first-theme
*/ Diğer bir temel dosya ise… functions.phpBu bir şablon dosyası değil; bir temanın “işlevsel geliştiricisidir”. Buraya özel özellikler ekleyebilir, menüler ve kenar çubuklarını tanımlayabilir, betikler ile stil dosyalarını içe aktarabilirsiniz. Esasen, WordPress’in çekirdek dosyalarını değiştirmeden temaya PHP kodu eklemenin bir yoludur.
Şablon hiyerarşisi ve dosya organizasyonu
WordPress, belirli bir sayfa için hangi şablon dosyasının yükleneceğine karar vermek için “Şablon Yapısı” (Template Hierarchy) adında bir akıllı sistem kullanır. Bu yapıyı anlamak, verimli geliştirme için çok önemlidir. Örneğin, tek bir makaleye erişildiğinde, WordPress sırasıyla şu adımları izler: single-post.php、single.phpSon olarak, index.phpYaygın olarak kullanılan şablon dosyaları şunları içerir:
* header.phpWeb sitesi başlığı.
* footer.phpWeb sitesi alt kısmı (footer).
* sidebar.php: Yan menü.
* page.php: Tek sayfalar için kullanılır.
* single.php: Tekil makaleler için kullanılır.
* archive.php`: Arşiv sayfalarında sınıflandırma, etiketleme vb. amaçlar için kullanılır.
* 404.php404 Hata Sayfası.
* front-page.phpWeb Sitesi Ana Sayfası (Ana Sayfa Ayarlarından daha yüksek öncelikte).
Bu şablon dosyalarını ayırın ve ardından… get_header(), get_footer(), get_sidebar() Gerekli olduğunda fonksiyonları çağırmak, kodun DRY (Don’t Repeat Yourself – Kendini Tekrarlama) ilkesini korumanın en iyi yoludur.
Konu şablonları oluşturma ve döngüler kullanma
Tüm WordPress temalarının temel gücü “ana döngü”den (main loop) gelir. Döngü, WordPress’in veritabanından içerikleri (makaleler, sayfalar vb.) alıp sayfada gösterme mekanizmasıdır. Döngüyü anlamak ve doğru bir şekilde kullanmak, tema geliştirmenin temel becerilerindendir.
Ana döngünün standart yazımı
一个典型的循环结构包含在 if 语句中,该语句检查当前查询是否有文章可以显示。我们使用 while Döngü, her makaleyi tek tek incelemek için kullanılır.
Tavsiye edilen okuma Sıfırdan Bir: WordPress Tema Geliştirme Kapsamlı Rehberi ve Pratik Eğitimi。
<article id="post-<?php the_ID(); ?>" no numeric noise key 1007>
<header class="entry-header">
<h2 class="entry-title"><a href="/tr/</?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
</header>
<div class="entry-content">
<?php the_content(); ?>
</div>
</article>
<p><?php esc_html_e( 'Sorry, no posts matched your criteria.', 'my-first-theme' ); ?></p>
<?php endif; ?> Döngü içinde, makale bilgilerini çıkarmak için bir dizi şablon etiketi kullanabilirsiniz, örneğin: the_title(), the_content(), the_permalink(), the_post_thumbnail() vs.
Özel sayfa şablonu oluşturun.
Standart şablon hiyerarşisi dosyalarının yanı sıra, tek bir sayfaya özgü bir düzen kazandırmak için özel sayfa şablonları da oluşturabilirsiniz. Bunun için yalnızca şablon dosyasının baş kısmındaki yorumlara gerekli bilgileri eklemeniz yeterlidir. Template Name: Sadece bir beyan yapmanız yeterli.
<?php
/*
Template Name: 全宽页面布局
*/
get_header(); ?>
<div id="primary" class="full-width-content">
<main id="main">
<?php
while ( have_posts() ) : the_post();
get_template_part( 'template-parts/content', 'page' );
endwhile;
?>
</main>
</div>
<?php get_footer(); ?> Oluşturulduktan sonra, bu şablon WordPress yönetim panelinin “Özellikler” bölümündeki şablonlar düğmesinin açılır menüsünde görünecek ve editörler tarafından seçilebilecektir. Daha iyi bir kod organizasyonu için, tekrar kullanılabilir içerik parçalarını (örneğin makale özetleri, makale meta bilgileri) belirli bir yere koymak önerilir. template-parts Katalogda bulunan dosyaları kullanın. get_template_part() Fonksiyon çağrısı.
İşlev ve tema seçenekleri ekleyin.
Modern bir tema sadece statik şablonlar bütünü olmamalıdır; aynı zamanda kullanıcıların kodla uğraşmadan web sitesinin görünümünü ayarlayabilmelerini sağlayacak uygun özelleştirme imkanları sunmalıdır. Bu özellikler esas olarak… functions.php Dosyalar ve WordPress’in API’lerinin uygulanması.
Kayıtlı konuların desteklediği özellikler:
Kullanın. add_theme_support() Fonksiyonlar, temanızın hangi WordPress çekirdek özelliklerini desteklediğini belirleyebilir. Makale özel görsellerinin, özelleştirilmiş logoların, makale formatlarının ve diğer özelliklerin etkinleştirilmesinin standart yoludur.
function my_theme_setup() {
// 启用文章和评论的 RSS feed 链接
add_theme_support( 'automatic-feed-links' );
// 启用文章特色图像
add_theme_support( 'post-thumbnails' );
// 启用自定义 logo
add_theme_support( 'custom-logo', array(
'height' => 100,
'width' => 400,
'flex-height' => true,
'flex-width' => true,
) );
// 启用标题标签功能(WordPress 自动管理 `<title>` 标签)
add_theme_support( 'title-tag' );
// 启用 HTML5 标记支持
add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' ) );
}
add_action( 'after_setup_theme', 'my_theme_setup' ); Menü ve araç çubuğu bölgesi oluşturun.
Navigasyon menüsü ve araç çubukları, kullanıcıların kendi düzenlemelerini yapmaları için çok önemlidir. Öncelikle bunları hazırlamanız gerekiyor. functions.php Onları önce burada kaydetmeniz gerekiyor; ardından şablonlarda kullanabilirsiniz.
Tavsiye edilen okuma WordPress'e yeni başlayanlar için: ilk web sitenizi beş dakika içinde kurun.。
function my_theme_menus() {
register_nav_menus( array(
'primary' => __( '主导航菜单', 'my-first-theme' ),
'footer' => __( '页脚菜单', 'my-first-theme' ),
) );
}
add_action( 'after_setup_theme', 'my_theme_menus' ); Kayıt Araçları Bölgesi (Kenar Çubuğu):
function my_theme_widgets_init() {
register_sidebar( array(
'name' => __( '主侧边栏', 'my-first-theme' ),
'id' => 'sidebar-1',
'description' => __( '在此添加小工具。', 'my-first-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', 'my_theme_widgets_init' ); Şablonda, kullanın. wp_nav_menu() Menüyü göster, kullan. dynamic_sidebar() Gadget bölgesini göster.
Kodları ve stilleri güvenli bir şekilde dahil etmek
Asla şablon dosyalarına doğrudan kodları sabit olarak (hardcoded) eklemeyin. <link> 或 <script> Etiketler. Bunların kullanılması gerekmektedir. wp_enqueue_script() 和 wp_enqueue_style() fonksiyonları ve bunları bağlamak. wp_enqueue_scripts Kancada.
function my_theme_scripts() {
// 引入主样式表
wp_enqueue_style( 'my-theme-style', get_stylesheet_uri() );
// 引入自定义 JavaScript 文件
wp_enqueue_script( 'my-theme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '', true );
// 如果需要,引入 jQuery(注意:WordPress 默认已包含)
// wp_enqueue_script( 'jquery' );
}
add_action( 'wp_enqueue_scripts', 'my_theme_scripts' ); Performans Optimizasyonu ve Gelişmiş Özellikler
Geliştirilmiş olan temanın, hızlı, güvenli ve kolayca bakım yapılabilir olması için optimize edilmesi gerekmektedir. İşte bazı ileri düzey en iyi uygulamalar:
En iyi performans uygulamalarını hayata geçirin.
**Script ve Stil Yönetimi:** Sadece gerekli sayfalarda script’leri ve stilleri yükleyin. wp_enqueue_scripts Kancalar, koşullu karar verme mekanizmalarıyla birlikte kullanılır (örneğin…) is_front_page(), is_page())。
* 图像优化:确保主题生成的图片尺寸合理。使用 add_image_size() Uygun resim boyutlarını belirleyin ve ön tarafta bu boyutları kullanın; böylece resimlerin ön tarafta büyütülüp küçültülmesini önleyin.
* 最小化 HTTP 请求:合理合并 CSS 和 JavaScript 文件(虽然 WordPress 插件常处理此问题,但开发者应有意识)。
* 利用缓存:在代码层面,可以通过 Transients API 缓存复杂的数据库查询结果。
Konunun güvenliğini ve uluslararasılaştırılmasını sağlayın.
Güvenlik son derece önemlidir. Kullanıcı girdilerini her zaman dönüştürün veya doğrulayın. WordPress, size yardımcı olacak birçok fonksiyon sunar:
*Dinamik içerik çıktısı sağlanırken kullanılır.* esc_html(), esc_attr(), esc_url() Ve benzeri karakterlerin anlamlarını değiştirmek için “ekranlama” (escape) işlemi yapılır.
* __(), _e() Bu fonksiyonlar için gerekli hazırlıkları yapın ve fonksiyon çağrıları için bir metin alanı (Text Domain) sağlayın.
* 构建主题选项时,务必使用 WordPress 提供的 Nonce 和权限检查,防止 CSRF 和越权访问。
Özelleştiricileri ve blok desteğini keşfedin.
Daha gelişmiş özelleştirme ihtiyaçları için, WordPress Customizer (Özelleştirici) güçlü ve gerçek zamanlı önizleme özelliklerine sahip bir API’dir. Bunu kullanarak… $wp_customize Nesneye ayarlar ve kontroller eklenir.
Aynı zamanda, Gutenberg blok düzenleyicisinin yaygınlaşmasıyla birlikte, temalara “blok stilleri” ve “düzenleyici stilleri” desteği eklemeyi düşünmek çok önemli hale gelmiştir. Bu, içeriğin hem ön uç hem de arka uç düzenleyicilerde görsel olarak tutarlı bir şekilde sunulmasını sağlayarak kullanıcı deneyimini sorunsuz hale getirir.
Özetle.
WordPress tema geliştirme, temanın temel yapısını (şablon hiyerarşisi, ana döngü) anlamaktan başlayarak, şablonların oluşturulması, özelliklerin (menüler, araç çubukları, özel görseller) eklenmesi ve son olarak da performans ve güvenlik iyileştirmelerinin yapılmasıyla tamamlanan bir süreçtir. Şablon dosyalarının ayrılması, kaynakların doğru şekilde dahil edilmesi, uluslararasılaştırma (i18n) ve güvenlik önlemlerinin uygulanması gibi en iyi uygulamalara uyulması, profesyonel seviyede temalar oluşturmanın anahtarıdır. Yerel bir ortamda geliştirme yaparak ve güçlü “Hook” (Kancalar) ile fonksiyonları kullanarak, sadece estetik açıdan çekici değil, aynı zamanda kod açısından sağlam, bakımı ve genişletilmesi kolay WordPress temaları oluşturabilirsiniz. Unutmayın ki, sürekli öğrenmek ve pratik yapmak, basit temalarla başlayıp daha karmaşık projelere doğru adım adım ilerlemek, bu beceriyi kazanmanın etkili yoludur.
Sıkça Sorulan Sorular.
WordPress tema geliştirmek için hangi temel bilgilere ihtiyaç vardır?
HTML, CSS ve PHP’nin temel bilgilerine hakim olmanız gerekiyor. JavaScript konusunda bilgi sahibi olmanız, özellikle WordPress REST API ile etkileşim kurmak veya bloklar geliştirmek açısından avantajlı olacaktır. Ayrıca, WordPress’in temel işleyiş prensiplerini – makale türleri, kategoriler ve veritabanı sorguları gibi – anlamanız da çok önemlidir.
Nasıl temamı WordPress resmi katalogunun yükleme standartlarına uygun hale getirebilirim?
Temanızın WordPress.org’un resmi tema dizinine gönderilebilir olması için, “Tema İnceleme Gerekliliklerine” sıkı sıkıya uymalısınız. Bunlar arasında şunlar yer alır: Güvenli kodlama uygulamalarının kullanılması (çıktının escape edilmesi, girdilerin doğrulanması), tam uluslararasılaştırmanın sağlanması (çeviri fonksiyonlarının ve doğru metin alanlarının kullanılması), tema kodunda hata veya uyarıların bulunmaması, erişilebilirlik desteğinin sağlanması ve GPL ile uyumlu olmayan herhangi bir kodun veya kaynağın temaya dahil edilmemesi gerekmektedir. Geliştirme sürecinin başından itibaren bu standartları incelemeniz önerilir.
Alt konu (subtopic) ve üst konu (parent topic) arasındaki fark nedir? Ne zaman kullanılırlar?
Bir üst tema, tüm gerekli şablon dosyalarını ve özellikleri içeren, tamamen işlevsel ve bağımsız bir temadır. Bir alt tema ise üst temaya bağımlıdır; üst temanın tüm özelliklerini devralır ve yalnızca birkaç dosyayı ekleyerek veya değiştirerek işlevlerini genişletebilirsiniz. style.css 和 functions.phpGörünümü ve işlevleri özelleştirmek için bunları kullanabilirsiniz. Mevcut bir temayı (özellikle popüler bir framework veya ticari tema) değiştirmek istediğinizde, ancak gelecekte üst temayı güvenli bir şekilde güncelleyip yaptığınız özelleştirmelerin kaybolmamasını istiyorsanız, bir alt tema oluşturmalısınız.
Tema birim testi nedir? Neden bu kadar önemli?
“Tematik birim testleri” genellikle, çeşitli içerik türlerini içeren WordPress test verilerinden (XML dosyalarından) oluşan bir koleksiyonu ifade eder. Bu verileri geliştirme sitenize içe aktararak, temanızın uzun makaleler, kısa makaleler, çok seviyeli yorumlar, çeşitli medya formatları (resimler, videolar, ses dosyaları), eklentiler, menüler vb. gibi farklı senaryolarda nasıl performans gösterdiğini kapsamlı bir şekilde test edersiniz. Bu çok önemlidir; çünkü temanızın stil, düzen ve işlevsellik açısından olası sorunları tespit etmenize yardımcı olur ve temanızın gerçek, karmaşık içerik ortamlarında da sorunsuz çalışmasını sağlar, böylece yayınladıktan sonra kullanıcıların şikayetlerini önlersiniz.
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.
- WordPress’in Anlamı ve Değeri
- WooCommerce Çince Tam Kullanım Kılavuzu: Sıfırdan Kendi Çevrimiçi Mağazanızı Kurmak
- Neden çevrimiçi mağazanızı oluşturmak için WooCommerce’ü seçtiniz?
- WordPress web sitelerinin performansını artırmak için 7 önerilen WordPress eklentisi:
- WordPress ile Web Sitesi Oluşturma Kılavuzu: Sıfırdan Uzmanlığa, Profesyonel Web Siteleri Oluşturmak