WordPress temasının temel bileşenleri.
Standard bir WordPress teması, web sitesinin görünümünü ve işlevselliğini birlikte tanımlayan bir dizi belgeden oluşur. En temel ve gerekli belgeler şunlardır:style.css和index.phpBunlar arasında,style.cssSadece tema stil sayfası değil, aynı zamanda temanın “kimlik kartı” görevi görür. Dosyanın başlık yorumları, tema adı, yazar, açıklama, sürüm ve diğer önemli meta bilgilerini içerir.
Bu iki temel dosya dışında, eksiksiz bir modern tema genellikle diğer şablon dosyalarını da içerir. Örneğin,header.phpWeb sitesinin başlık kısmını oluşturmaktan sorumlu kişi,footer.phpAyağı tanımlayın.sidebar.phpYan menünün görüntülenmesini kontrol edin. Tek bir makalenin görüntülenmesi için kullanılır.single.phpMakale listesini gösteren.archive.phpVe görüntüleme sayfasının.page.phpBunların hepsi, tema içeriğinin sunum mantığının oluşturulmasında önemli birer parçadır.
Ayrıca, \n Tavsiye edilen okuma Günümüzün rekabetçi çevrimiçi dünyasında, iyi tasarlanmış ve yüksek performanslı bir Word belgesi。 Konunun Burada, “Metin Alanı” uluslararasılaşma için kullanılır ve sonraki dil çevirileri sırasında kullanılan bir tanımlayıcıdır. Genellikle tema klasörü adıyla uyuşur. Bu kod, bir hook aracılığıyla WordPress, farklı türdeki sayfaların nasıl görüntüleneceğini belirlemek için “Şablon Hiyerarşisi” adlı akıllı bir sistem kullanır. Bir kullanıcı bir sayfaya eriştiğinde, WordPress belirli bir öncelik sırasına göre ilgili şablon dosyalarını arar. Örneğin, “Haber” olarak sınıflandırılmış bir makale için, WordPress sırasıyla şunları arar: Tavsiye edilen okuma WordPress tema geliştirmeye giriş: Sıfırdan özelleştirilmiş bir web sitesi oluşturma.。 Sistem tarafından belirlenen şablonların yanında, geliştiriciler “sayfa şablonları” da oluşturabilir. Bu, belirli bir sayfa veya sayfa sınıfı için tasarlanmış özel şablonlardır. Bir sayfa şablonu oluşturmak için, şablon dosyasının başlık yorumunda açıkça belirtmek gerekir. Örneğin, tam genişlikte bir sayfa şablonu oluşturmak için, adında yeni bir şablon oluşturabilirsiniz. Daha sonra, WordPress yönetim alanındaki düzenleme sayfasında, “Sayfa Özellikleri”nin “Şablon” açılır menüsünde “Tam Genişlik Sayfa Düzeni”ni görebilir ve seçebilirsiniz. Bu, içerik görüntüsü için büyük esneklik sağlar ve özel düzenleme gereksinimlerini karşılamak için tema ana dosyalarını değiştirmenize gerek kalmaz. Şablon dosyalarında, farklı koşullara göre farklı içerikleri göstermek gerekir. Bu durumda, WordPress'in koşul etiketlerini kullanmanız gerekir. Örneğin, Yaygın koşul etiketleri ayrıca şunları içerir: Konunun istikrarını ve performansını sağlamak için, tüm JavaScript ve CSS dosyaları, doğrudan şablon dosyalarında kullanmak yerine, WordPress tarafından sağlanan yöntemlerle sırayla yüklenmelidir. Tavsiye edilen okuma Pratik odak noktası: Modern WordPress tema geliştirme temel becerilerini sıfırdan bire kadar öğrenin.。 Kullanın. Yukarıdaki örnekte, Bazen, PHP mantığına göre bazı CSS veya JavaScript'leri dinamik olarak oluşturmak gerekir. Bu durumda, aşağıdakileri kullanabilirsiniz. WordPress Teması Özelleştiricisi, kullanıcılara (yöneticilere) renk, logo, arka plan resmi gibi tema ayarlarını değiştirme imkanı sunan gerçek zamanlı bir önizleme arayüzü sunar. Tema Özelleştirici API'si sayesinde geliştiriciler, temaya güvenli bir şekilde yapılandırılabilir seçenekler ekleyebilir. Öncelikle, bunun için bir hesap açmanız gerekir. Ayarları ekledikten sonra, bu değeri temanın ön uçunda çıktı olarak göstermeniz gerekir. Genellikle bunu etiketinin içinde yaparsınız. Bu şekilde, temanın işlevselliği ve görünümü, kodun temiz ve güvenli kalmasını sağlayarak oldukça özelleştirilebilir hale gelir. Bir WordPress teması geliştirmek, template hiyerarşisi, temel fonksiyonlar, kaynak yönetimi ve özelleştirilmiş API'ler hakkında derinlemesine bir anlayış gerektiren sistematik bir iştir. En temel yapıdan başlayarak WordPress tarafından tanınabilen en temel bir tema için en az iki dosyaya ihtiyaç vardır: Subtema, ana temanın tüm işlevlerini ve stillerini miras alır, ancak geliştiricilere ana tema dosyalarını değiştirmeden üstlerini geçme ve özelleştirme imkanı sunar. Bu, ana tema güncellendiğinde özel değişikliklerin korunmasını kolaylaştırır. Bir alt tema oluşturmak için, sadece Lütfen sayfa şablonu dosyanızı kontrol edin (örneğin Bu öncelikli olarak “uluslararasılaşma (i18n)” ve “yerelleştirme (l10n)” aracılığıyla gerçekleştirilir. Öncelikle, 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.functions.phpDosya, temanın işlevsel merkezidir. Bu bir şablon dosyası değil, tema başlatıldığında otomatik olarak yüklenen bir PHP dosyasıdır. Geliştiriciler burada temanın desteklediği işlevleri ekleyebilir, menüleri ve kenar çubuklarını kaydedebilir, komut dosyalarını ve stil sayfalarını yükleyebilir ve çeşitli özel fonksiyonları tanımlayabilir.functions.php dosyası, temanın işlevselliğinin sınırsız bir şekilde genişletilmesini sağlar.Konu stil sayfasının başlık bilgileri
style.cssDosya başlığı, biçimlendirilmiş bir açıklama içermelidir. WordPress, bu bilgiyi okuyarak temayı arka planda tanır ve görüntüler./*
Theme Name: My Awesome Theme
Theme URI: https://example.com/my-awesome-theme/
Author: Your Name
Author URI: https://example.com/
Description: A modern, responsive WordPress theme built for speed and SEO.
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-awesome-theme
*/Tema işlevsel dosyalarının yaygın kullanımı.
functions.phpDosyalar, bir konunun “beyni”dir. Yaygın bir işlem, bunları kullanmaktır.add_theme_support()İşlev, temanın desteklediği özellikleri beyan eder. Örneğin, makale özellikli resimlerin, özel logoların, özel arka planların vb. etkinleştirilmesi.<?php
function my_awesome_theme_setup() {
// 添加对文章特色图片的支持
add_theme_support( 'post-thumbnails' );
// 添加对自定义Logo的支持
add_theme_support( 'custom-logo' );
// 添加对HTML5标记的支持
add_theme_support( 'html5', array( 'comment-list', 'comment-form', 'search-form', 'gallery', 'caption' ) );
// 添加对标题标签的支持
add_theme_support( 'title-tag' );
}
add_action( 'after_setup_theme', 'my_awesome_theme_setup' );
?>after_setup_themeTemayı yükledikten sonra çalıştırıldığında, birçok WordPress çekirdek özelliği güvenli bir şekilde etkinleştirilir.Şablon hiyerarşisi ve özel şablonlar.
single-post-news.php -> single-post.php -> single.php -> singular.php -> index.phpGeliştiriciler, belirli adlandırılmış şablon dosyaları oluşturarak sayfa kontrolünü daha da hassas hale getiren bu kurallardan yararlanabilirler.Özel sayfa şablonu oluşturun.
template-fullwidth.phpDosyaları ve belgeleri düzenleyin ve dosyaların başına aşağıdaki notu ekleyin:<?php
/**
* Template Name: 全宽度页面布局
* Description: 一个没有侧边栏的全宽度页面模板
*/
?>Logik kontrol için koşul etiketlerini kullanın.
index.phpÇin'de, mevcut sayfanın bir makale listesi sayfası mı yoksa tek bir makale sayfası mı olduğunu belirlemek için koşullu etiketler kullanılabilir, ancak genellikle daha spesifik şablon dosyaları bununla sorumludur.<?php if ( is_home() && ! is_front_page() ) : ?>
<h1>Blog yazısı listesi.</h1>
<?php elseif ( is_search() ) : ?>
<h1>Arama sonuçları:</h1>
<?php endif; ?>is_single()、is_page()、is_category()、is_archive()Bunlar, dinamik ve akıllı temalar oluşturmanın temel taşlarıdır.Konunun senaryo ve stil yönetimi.
或Etiket. Bu,functions.phpÇin'dekiwp_enqueue_scriptsBunu gerçekleştirmek için hooklar kullanılır.Kaynakları doğru şekilde kaydet ve sıraya geç.
wp_register_script()和wp_enqueue_script()(Senaryo) veya buna karşılık gelenwp_register_style()和wp_enqueue_style()(Stil) fonksiyonu, WordPress'in bağımlılıkları ve sürüm kontrolünü tek bir yerden yönetmesini ve aynı zamanda yinelen yüklemeleri engellemesini sağlar.<?php
function my_awesome_theme_scripts() {
// 注册并排队主样式表(style.css)
wp_enqueue_style( 'my-awesome-theme-style', get_stylesheet_uri(), array(), wp_get_theme()->get('Version') );
// 注册一个自定义JavaScript文件
wp_register_script( 'my-theme-navigation', get_template_directory_uri() . '/js/navigation.js', array('jquery'), '1.0.0', true );
// 排队这个脚本(仅在需要时)
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
}
add_action( 'wp_enqueue_scripts', 'my_awesome_theme_scripts' );
?>get_stylesheet_uri()Mevcut temanın bilgilerini almak için…style.cssYol,get_template_directory_uri()Konu dizinin URI'sini alın. Betikinin son parametresini Obtain the URI of the topic directory. Set the last parameter of the script totrueBu, altbilginin yüklenmesi anlamına gelir ve bu da sayfa yükleme performansını artırmaya yardımcı olur.İçeriğe entegre edilmiş stil veya komut dosyaları ekle.
wp_add_inline_style()和wp_add_inline_script()İşlevler, zaten sıraya alınmış bir kaynağa bağlı olmalıdır.<?php
function my_dynamic_css() {
$custom_css = "
.site-header {
background-color: #" . get_theme_mod('header_bg_color', 'ffffff') . ";
}
";
wp_add_inline_style( 'my-awesome-theme-style', $custom_css );
}
add_action( 'wp_enqueue_scripts', 'my_dynamic_css' );
?>Konu özelleştiricisi ve özelleştirme fonksiyonları.
Özelleştiriciye bir ayar ekleyin.
functions.phpÇince'de kullanılır.customize_registerHooke, ayarları, kontrolleri ve bölgeleri kaydetmek için kullanılır.<?php
function my_awesome_theme_customize_register( $wp_customize ) {
// 添加一个“颜色”板块
$wp_customize->add_section( 'theme_colors', array(
'title' => __( '主题颜色', 'my-awesome-theme' ),
'priority' => 30,
) );
// 添加一个“链接颜色”设置
$wp_customize->add_setting( 'link_color', array(
'default' => '#0073aa',
'sanitize_callback' => 'sanitize_hex_color',
'transport' => 'postMessage', // 支持实时预览
) );
// 为该设置添加一个颜色选择器控件
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'link_color', array(
'label' => __( '链接颜色', 'my-awesome-theme' ),
'section' => 'theme_colors',
'settings' => 'link_color',
) ) );
}
add_action( 'customize_register', 'my_awesome_theme_customize_register' );
?>Konuda özel ayarları yazdırın.
style.cssVeyawp_add_inline_style()Eklenen dinamik CSS'de, kullanılır.get_theme_mod()İşlev, değeri alır.<?php
function output_customizer_css() {
$link_color = get_theme_mod( 'link_color', '#0073aa' ); // 第二个参数为默认值
if ( $link_color !== '#0073aa' ) {
$css = "
a { color: {$link_color}; }
a:hover { color: " . adjust_color( $link_color, -50 ) . "; }
";
wp_add_inline_style( 'my-awesome-theme-style', $css );
}
}
add_action( 'wp_enqueue_scripts', 'output_customizer_css' );
?>Özetle.
style.css和index.phpBaşlamak için, farklı sayfaların görüntülenmesini kontrol etmek için belirli şablon dosyaları oluşturarak başlayın.functions.phpBir temanın işlevselliğini genişletmek ve WordPress standartlarına uygun olarak komut dosyalarını ve stilleri yönetmek, güçlü ve verimli bir tema oluşturmanın temelidir. Dahası, tema özelleştirici API'sini entegre etmek kullanıcılara kullanıcı dostu gerçek zamanlı özelleştirme deneyimini sunabilir. Bu temel kavramları ve becerileri öğrenmek, profesyonel bir WordPress tema geliştiricisi olmanın anahtarıdır.Sıkça Sorulan Sorular.
En temel bir WordPress teması için en az kaç dosyaya ihtiyaç vardır?
style.css和index.php。style.cssBaşlık, doğru konu bilgisi notlarını içermelidir veindex.phpBu, şablon hiyerarşisindeki son geri alma dosyasıdır ve en temel içeriğin çıktısı için kullanılır.Sub-topic ve parent-topic arasındaki fark nedir? Nasıl oluşturulurlar?
/wp-content/themes/Bir dizinde yeni bir klasör oluşturun ve bir dosya oluşturun.style.cssDosya, başlık notlarında bunun bulunması gerekir.Template:İlgili ana konunun dizin adını belirtmek için bu satırı kullanın.Neden özel sayfa şablonum arka plan açılır menüsünde görüntülenmiyor?
my-template.phpDosya, temanın kök dizininde bulunuyor mu ve dosyanın başındaki yorum bloklarının biçimi tam olarak doğru olmalı mı? Yorum blokları aşağıdakileri içermelidir:Template Name:Bu satır ve onu takip eden şablon adınız. Bir boşluk hatası veya kolonun eksik olması, WordPress'in onu tanımasını engelleyebilir.Temamı nasıl birden çok dil çevirisine destekleyebilirim?
style.cssİngilizce'de “Text Domain” vefunctions.php的load_theme_textdomain()Çağrıda, tutarlı bir tema metin alanı kullanın. Daha sonra, tüm çevirilmesi gereken dizelerde kullanın.__()、_e()Çeviri fonksiyonlarını bir pakete dönüştürün. Son olarak, Poedit gibi bir araç kullanarak bunları oluşturun..potŞablon dosyaları ve ilgili diller için şablonlar oluşturun..po和.moDosyalar, konunun altına yerleştirilir./languages/Kataloğda.Bir sonraki adım, bundan sonra ne yapmalıyım?
Daha fazla okuma ve pratik bilgiler.