Dalam ekosistem WordPress, subtema merupakan asas yang selamat untuk menyesuaikan dan menaik taraf laman web. Ia membenarkan anda mewarisi semua fungsi, gaya, dan fail templat tema induk, sambil membuat perubahan dalam direktori berasingan. Ini bermaksud, apabila tema induk mengeluarkan tampalan keselamatan atau kemaskini fungsi, anda boleh mengemaskini dengan satu klik tanpa perlu risau kod kustomisasi yang rumit akan digantikan. Sama ada untuk menyesuaikan warna, mengubah susun atur, atau menambah fungsi yang kompleks, menggunakan subtema adalah amalan terbaik.
Mengapa kita mesti menggunakan subtopik?
Mengubah suai fail tema induk secara langsung adalah satu tindakan yang berisiko tinggi. Sebaik sahaja tema induk dikemaskini, semua pengubahan anda akan hilang dan perlu diterapkan semula secara manual, satu proses yang sangat mudah untuk melakukan kesilapan dan memakan masa. Lebih penting lagi, tanpa rekod pengubahan yang jelas, ini akan menyebabkan masalah besar semasa kerjasama pasukan atau migrasi laman web di masa hadapan.
Subtema menyelesaikan masalah ini melalui mekanisme “penutupan”. Apabila WordPress merender halaman, pertama sekali ia akan mencari fail templat yang sepadan dalam direktori subtema. Jika ia ditemui, ia akan menggunakan versi subtema; jika tidak, secara automatik ia akan kembali ke versi tema induk. Mekanisme ini membenarkan anda untuk mengubah suai hanya bahagian yang diperlukan, sementara bahagian lain akan terus mendapat kemaskini dan penyelenggaraan daripada tema induk.
Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan permulaan untuk pembangunan tema WordPress: Membina tema pertama anda dari awal.。
Selain itu, menggunakan subtema adalah amalan yang disyorkan oleh WordPress, kerana ia dapat mengekalkan kesucian dan keboleh-maintainan kod, dan merupakan tanda pembangunan profesional.
Mencipta struktur asas subtopik.
Mencipta subtema sangat mudah, memerlukan hanya dua fail asas: satu lembar gaya dan satu fail fungsi. Pertama, anda perlu /wp-content/themes/ Buat folder baru di bawah direktori, biasanya dinamakan “Nama Topik Utama - Anak”, sebagai contoh. twentytwentyfour-child。
Mencipta fail gaya teras
Inti dari subtopik ini adalah fail gayaannya. style.cssDokumen ini bukan sahaja mengandungi peraturan CSS, tetapi yang lebih penting ialah anotasi kepala failnya, yang digunakan untuk menyatakan kepada WordPress bahawa ini adalah subtema dan siapa tema induknya.
/*
Theme Name: Twenty Twenty-Four Child
Theme URI: https://example.com/twentytwentyfour-child/
Description: Twenty Twenty-Four Child Theme
Author: Your Name
Author URI: https://example.com
Template: twentytwentyfour
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfour-child
*/ Di antaranya,Template: Baris ini sangat penting, dan nilainya mesti sama persis dengan nama direktori tema induk, dengan perbezaan huruf besar dan kecil. Inilah cara WordPress mengenali hubungan antara tema induk dan anak tema.
Mengenalkan lembar gaya tema induk.
Hanya dengan dokumen-dokumen di atas, subtema tidak dapat memuat gaya tema induk. Anda perlu menggunakan fail-fail fungsi dalam subtema. functions.php Gunakan dalam bahasa Cina wp_enqueue_scripts Hook ini digunakan untuk mengatur giliran memuat lembar gaya tema induk.
Diperoleh daripada WEB\nDisyorkan untuk membaca. Penting untuk membina laman web profesional: Panduan lengkap untuk pembangunan dan penyesuaian tema WordPress.。
<?php
add_action( 'wp_enqueue_scripts', 'my_child_theme_enqueue_styles' );
function my_child_theme_enqueue_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'child-style',
get_stylesheet_directory_uri() . '/style.css',
array( 'parent-style' ),
wp_get_theme()->get('Version')
);
}
?> get_template_directory_uri() Fungsi tersebut mendapatkan URL direktori topik induk, sedangkan get_stylesheet_directory_uri() Dapatkan URL direktori tema (subtema) aktif semasa. Melalui penggunaan array bergantung. array( 'parent-style' ) Pastikan gaya subtema dimuatkan selepas gaya tema induk, supaya peraturan CSS kustom anda dapat menggantikan gaya tema induk dengan betul.
Mengembangkan fungsi subtopik.
Selepas mencipta struktur asas, anda boleh melakukannya melalui functions.php Filem ini memperluas fungsi laman web tanpa batas. Kod dalam filem ini akan dijalankan sebelum kod tema induk. functions.php Pemprosesan fail memberikan anda akses mudah untuk mengubahsuai fungsi-fungsi utama.
Fungsi laman web yang boleh disesuaikan.
Sebagai contoh, anda mungkin ingin menambahkan jenis artikel khusus baharu, “Projek”, ke laman web anda. Anda boleh melakukan ini dalam subtema. functions.php Daftarkan ia dalam dokumen.
add_action( 'init', 'register_project_post_type' );
function register_project_post_type() {
$args = array(
'public' => true,
'label' => '项目',
'has_archive' => true,
'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt' ),
'menu_icon' => 'dashicons-portfolio',
);
register_post_type( 'project', $args );
} Pada masa yang sama, anda juga boleh membuang beberapa fungsi tema induk yang tidak diperlukan. Sebagai contoh, jika tema induk menambahkan widget kaki halaman yang tidak anda kehendaki melalui fungsi khusus, anda boleh menggunakan remove_action() Untuk membatalkannya. Sekiranya topik induk berada di dalam init Di atas pengait itu, gunakan parent_theme_footer_widgets Fungsi tersebut telah menambahkan alat-alat kecil, dan anda boleh membuangnya dengan cara ini:
add_action( 'after_setup_theme', 'remove_parent_theme_features', 15 );
function remove_parent_theme_features() {
remove_action( 'init', 'parent_theme_footer_widgets' );
} Perhatikan, di sini kita menggunakan after_setup_theme Mengaitkan dan menetapkan keutamaan yang sedikit lebih tinggi (seperti 15) adalah untuk memastikan kod topik induk telah dilaksanakan. add_actionOleh itu, kami remove_action Ia hanya akan berkuat kuasa setelah…
\nCakup fail templat topik induk.
Salah satu fungsi paling kuat dalam subtema ialah menggantikan fail templat tema induk. Jika anda ingin mengubah cara paparan halaman tunggal artikel, anda hanya perlu menggantikan fail templat dalam tema induk. single.php Salin ke dalam direktori subtema anda, kemudian edit. WordPress akan menggunakan versi anda secara automatik.
Diperoleh daripada WEB\nDisyorkan untuk membaca. Membebaskan potensi: Meneroka teknologi teras dan amalan terbaik untuk membina tema WordPress yang canggih.。
Untuk kawalan yang lebih terperinci, anda juga boleh meliputi bahagian templat (Template Parts) atau bahagian templat khusus. Sebagai contoh, untuk mengubah paparan metadata artikel, anda boleh menyalin dan mengedit . template-parts/content-post-meta.php Masukkan fail ke dalam laluan yang sama dengan subtopik.
Teknik-teknik lanjutan dalam pembangunan subtopik.
Apabila pembangunan subtema memasuki fasa yang lebih profesional, anda akan terlibat dalam topik-topik lanjutan seperti penterjemahan, pewarisan pilihan tema dan pembaruan subtema itu sendiri.
Melakukan terjemahan lokalisasi teks.
Untuk membolehkan subtopik anda menyokong pelbagai bahasa, anda perlu mengatur domain teks dengan betul dan menggunakan fungsi terjemahan. Dalam style.css Kepala dan functions.php Memuatkan medan teks adalah langkah pertama.
在 functions.php Di dalamnya, gunakan load_child_theme_textdomain Fungsi:
add_action( 'after_setup_theme', 'child_theme_localization_setup' );
function child_theme_localization_setup() {
load_child_theme_textdomain( 'twentytwentyfour-child', get_stylesheet_directory() . '/languages' );
} Kemudian, gunakan sesuatu seperti ini pada rentetan karakter yang perlu diterjemahkan: esc_html__( 'Your Text', 'twentytwentyfour-child' ) Seperti pembungkusan fungsi. Kemudian, anda boleh menggunakan alat seperti Poedit untuk menjana .po 和 .mo Menterjemahkan dokumen dan menyimpannya dalam subtopik. /languages/ Dalam katalog.
Modifikasi fungsi teras dengan selamat.
Kadang-kadang, anda perlu mengubah suai fungsi yang kompleks dalam tema induk, tetapi fungsi tersebut tidak menyediakan fleksibiliti yang mencukupi melalui pengait (Hooks). Jika fungsi tersebut “boleh dicabut” (“Pluggable”), maka gunakanlah Sometimes, you need to modify a complex function in the parent theme, but this function does not provide enough flexibility through hooks. If the function is "pluggable", then use it. if ( ! function_exists( ... ) ) Jika anda ingin membuat pakej, anda boleh melakukannya dalam subtopik. functions.php Anda boleh mengisytiharkan semula fungsi tersebut secara langsung dalam kod C++, untuk menyebelahinya sepenuhnya.
Sebelum mencuba operasi ini, pastikan cara definisi fungsi dalam tema induk. Jika ia tidak boleh diganti, mengisytiharkan semula secara paksa akan mengakibatkan ralat fatal. Dalam kes ini, cara yang lebih selamat ialah menghubungi pembangun tema atau mencari pengait penyaring lain untuk memenuhi keperluan anda.
RINGKASAN
Membina subtema WordPress merupakan kemahiran teras yang mesti dikuasai oleh para profesional. Ia mewujudkan aliran kerja penyesuaian yang selamat dan berterusan, serta memisahkan kod kustomisasi anda daripada kod teras tema dengan jelas. Dari mencipta yang mengandungi maklumat tajuk yang betul, style.css Dan memuatkan gaya functions.php Pada mulanya, daripada mengemaskini fail templat, memperluas fungsi, hingga mengendalikan penterjemahan dan liputan lanjutan, setiap langkah mengikuti amalan terbaik WordPress. Sentiasa menggunakan subtema adalah asas yang kukuh untuk memastikan laman web anda sentiasa mengemaskini dan mengekalkan rupa dan fungsi uniknya untuk tahun-tahun akan datang.
FAQ - Soalan Lazim
Apakah syarat-syarat nama folder subtopik?
Terdapat tiada batasan ketat untuk nama folder subtopik, namun untuk keterbacaan, adalah dinasihatkan untuk menggunakan format “Nama Topik Induk - Anak”, sebagai contoh: astra-childPerkara yang paling penting ialah style.css Di dalam kepala dokumen tersebut Template: Medan, nilainya mesti sepadan sepenuhnya dengan nama folder topik induk, termasuk huruf besar dan kecil, jika tidak, WordPress tidak akan dapat menetapkan hubungan induk-anak dengan betul.
Adakah semua topik induk menyokong penciptaan topik anak?
Kebanyakan tema moden yang mematuhi standard pengekodan WordPress menyokong sepenuhnya subtema. Secara teori, sebarang tema boleh berfungsi sebagai tema induk. Namun, beberapa tema yang direka dengan buruk atau sangat lama mungkin menyebabkan subtema tidak berfungsi dengan betul kerana menggunakan laluan mutlak untuk merujuk sumber atau kekurangan fail templat yang diperlukan. Semasa memilih tema induk, adalah bijak untuk meninjau dokumentasi atau ulasan pengguna.
Bagaimana untuk memindahkan tema induk yang telah diubah secara langsung ke tema anak.
Pertama, dalam persekitaran tempatan atau ujian anda, cipta subtema baharu berdasarkan tema induk asal yang tidak diubah. Kemudian, bandingkan satu persatu perbezaan antara fail tema induk yang anda ubah sebelum ini dan fail asal. Pindahkan kod perbezaan ini (mungkin CSS, PHP atau HTML) secara teratur ke fail yang sepadan dalam subtema: CSS ke dalam subtema First, in your local or test environment, create a new sub-theme based on the unmodified original parent theme. Then, compare the differences between the parent theme files you previously modified and the original files one by one. Organize the differences and migrate them to the corresponding files in the sub-theme: CSS into the sub-theme. style.css, Kod fungsi dimasukkan. functions.phpKemudian, fail-fail templat yang telah diubahsuai akan disalin ke direktori sub-tema dan diubah. Ini adalah proses penyusunan yang teliti, tetapi ia akan menyelesaikan masalah untuk selamanya.
Adakah subtopik akan mempengaruhi kelajuan laman web?
Subtema yang dibina dengan betul mempunyai kesan yang minimal terhadap kelajuan laman web. Fail-fail CSS dan JS tambahan biasanya sangat kecil, dan dengan memuatkannya secara berurutan, mereka boleh digabungkan dan disimpan dalam cache dengan cekap. Perbelanjaan utama subtema mungkin berasal daripada functions.php Oleh itu, mengekalkan kod subtema yang ringkas dan berkesan adalah sama dengan prinsip yang diikuti semasa membangunkan tema induk. Penggunaan teknologi caching secara wajar boleh mengimbangi sebarang kesan prestasi yang berpotensi.
Selanjutnya, apa yang perlu kita lakukan seterusnya?
Bacaan lanjutan dan pengetahuan praktikal
Konten berikut berkaitan dengan topik artikel ini dan sesuai untuk bacaan lanjut. Lebih baik untuk memulakan dengan artikel yang paling dekat dengan masalah anda sekarang, dan kemudian secara bertahap mengembangkan ke topik yang berkaitan, kerana ini biasanya akan memberikan hasil yang lebih baik.
- Membina laman web profesional dengan mudah: Panduan lengkap dari pemulaan hingga ke tahap pakar menggunakan WordPress
- WooCommerce Ultimate Guide: Membina Laman Web E-dagang WordPress yang Berkuasa dari Kosong
- Panduan Asas WordPress: Bina Laman Web Profesional Pertama Anda Dari Kosong
- Mengapa guna WooCommerce untuk bina kedai dalam talian?
- Mengapa memilih WordPress: Sepuluh Kelebihan Utama Sistem Pengurusan Kandungan (CMS) Berbasis Sumber Terbuka