Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Membangun Tema

Artikel ini adalah tentang mengembangkan WordPress Tema. Jika Anda ingin mempelajari lebih lanjut tentang cara menginstal dan menggunakan Tema, meninjau Menggunakan Tema. Topik ini berbeda dari Menggunakan Tema karena membahas aspek teknis penulisan kode untuk membangun Tema Anda sendiri daripada cara mengaktifkan Tema atau di mana untuk mendapatkan Tema baru.

Tema Mengapa WordPress

Tema WordPress adalah file yang bekerja sama untuk menciptakan desain dan fungsi dari situs WordPress. Setiap Tema mungkin berbeda, menawarkan banyak pilihan untuk pemilik situs untuk langsung mengubah tampilan website mereka.

Anda mungkin ingin mengembangkan Tema WordPress untuk Anda gunakan sendiri, untuk proyek klien atau tunduk pada Tema WordPress Directory. Kenapa lagi Anda harus membangun Tema WordPress?

  • Untuk membuat tampilan yang unik untuk situs WordPress Anda.
  • Untuk mengambil keuntungan dari Template, tag template, dan WordPress loop untuk menghasilkan berbagai hasil situs dan terlihat.
  • Untuk menyediakan template alternatif untuk fitur situs tertentu, seperti halaman kategori halaman dan hasil pencarian.
  • Untuk segera beralih di antara dua layout situs, atau untuk mengambil keuntungan dari Tema atau gaya switcher untuk memungkinkan pemilik situs untuk mengubah tampilan situs Anda.

Sebuah Tema WordPress memiliki banyak manfaat, juga.

  • Ini memisahkan gaya presentasi dan file template dari file sistem sehingga situs akan meng-upgrade tanpa perubahan drastis untuk presentasi visual dari situs.
  • Hal ini memungkinkan untuk kustomisasi fungsi situs yang unik untuk tema itu.
  • Hal ini memungkinkan untuk perubahan cepat dari desain visual dan tata letak dari situs WordPress.
  • Ini menghilangkan kebutuhan untuk pemilik situs WordPress khas harus belajar CSS, HTML, dan PHP untuk memiliki situs web yang besar tampak.

Mengapa Anda harus membangun Tema WordPress Anda sendiri? Itulah pertanyaan yang sebenarnya.

  • Ini adalah kesempatan untuk belajar lebih banyak tentang CSS, HTML, dan PHP.
  • Ini kesempatan untuk menempatkan keahlian Anda dengan CSS, HTML, dan PHP untuk bekerja.
  • Ini kreatif.
  • Sangat menyenangkan (sebagian besar waktu).
  • Jika Anda merilisnya ke publik, Anda dapat merasa baik bahwa Anda berbagi dan memberikan sesuatu kembali ke Komunitas WordPress (oke, hak membual)

Tema Pengembangan Standar

WordPress Tema harus dikodekan menggunakan standar berikut:

Anatomi Tema

WordPress Themes tinggal di subdirektori dari tema WordPress direktori ( wp-content /themes / secara default) yang tidak bisa langsung pindah menggunakan wp-config. 'file php'. Subdirektori Theme ini menampung semua file stylesheet Theme ini, file template, dan fungsi opsional berkas ( functions.php ), file JavaScript, dan gambar. Sebagai contoh, sebuah tema yang bernama "test" akan berada di direktori wp-content /themes /test /. Hindari menggunakan nomor untuk nama tema, karena hal ini mencegah dari yang ditampilkan dalam daftar tema yang tersedia.

WordPress termasuk tema default di setiap instalasi baru. Memeriksa file dalam tema default hati-hati untuk mendapatkan ide yang lebih baik tentang bagaimana membangun file tema Anda sendiri.

Untuk panduan visual, melihat ini di WordPress Tema Anatomi.

WordPress Themes biasanya terdiri dari tiga jenis utama dari file, selain gambar dan file JavaScript.

  1. The stylesheet yang disebut style.css , yang mengontrol presentasi (desain visual dan tata letak) dari halaman situs.
  2. Wordpress Template file yang mengontrol cara halaman situs menghasilkan informasi dari database WordPress Anda yang akan ditampilkan di situs.
  3. Opsional fungsi file ( functions.php ) sebagai bagian dari file Tema WordPress.

Mari kita lihat ini secara individual.

Anak Tema

Tema yang paling sederhana yang mungkin adalah tema anak yang hanya mencakup file style.css , ditambah gambar apapun. Hal ini dimungkinkan karena merupakan anak dari tema lain yang bertindak sebagai induknya.

Untuk panduan rinci untuk tema anak, lihat Anak Tema. <! - Kita perlu meningkatkan Tema Anak daripada link ke situs eksternal seperti ini: http://op111.net/53 tutorial ini dengan op111 ->

Tema Stylesheet

Selain informasi gaya CSS untuk tema Anda, style.css memberikan rincian tentang tema dalam bentuk komentar. Stylesheet 'harus' memberikan rincian tentang tema dalam bentuk komentar. 'Tidak ada dua Tema diperbolehkan untuk memiliki rincian yang sama' tercantum dalam komentar mereka header, karena ini akan menyebabkan masalah dalam dialog pemilihan Theme . Jika Anda membuat tema sendiri dengan menyalin yang sudah ada, pastikan Anda mengubah informasi ini pertama.

Berikut ini adalah contoh dari beberapa baris pertama dari stylesheet, yang disebut header stylesheet, untuk tema "Dua puluh Tiga belas":

/*
Tema Nama: Dua puluh Tiga belas
Tema URI: http://wordpress.org/themes/twentythirteen
Penulis: Tim WordPress
Penulis URI: http://wordpress.org/
Keterangan: Tema 2013 untuk WordPress membawa kita kembali ke blog, menampilkan berbagai format posting, masing-masing ditampilkan indah dengan cara mereka sendiri yang unik. Rincian desain berlimpah, dimulai dengan skema warna cerah dan pencocokan gambar header, tipografi yang indah dan ikon, dan tata letak fleksibel yang tampak hebat pada perangkat apapun, besar atau kecil.
Versi: 1.0
Lisensi: GNU General Public License v2 atau lambat
Lisensi URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: hitam, coklat, oranye, cokelat, putih, kuning, cahaya, satu-kolom, dua kolom, kanan sidebar, fleksibel-lebar, custom-header, adat-menu, editor-gaya, fitur-gambar, Microformats, pasca-format, rtl-bahasa-dukungan, lengket-post, terjemahan-siap
Teks Domain: twentythirteen

Tema ini, seperti WordPress, dilisensikan di bawah GPL.
Menggunakannya untuk membuat sesuatu yang keren, bersenang-senang, dan berbagi apa yang Anda pelajari dengan orang lain.
* /

NB: Nama yang digunakan untuk Penulis disarankan untuk menjadi sama dengan nama pengguna wordpress.org Theme Penulis, meskipun bisa nama asli penulis juga. Pilihannya adalah Tema Penulis.

Perhatikan daftar Tags digunakan untuk menggambarkan tema. Ini memungkinkan pengguna untuk menemukan tema Anda menggunakan tag filter. Anda dapat menemukan daftar lengkap di Ulasan Handbook.

'Garis komentar header' 'style.css' 'yang diperlukan untuk WordPress untuk dapat mengidentifikasi tema' dan menampilkannya dalam Panel Administrasi di bawah Desain> Tema sebagai pilihan tema yang tersedia bersama dengan Tema diinstal lainnya.

Pedoman Stylesheet

  • Ikuti CSS coding standar ketika authoring CSS Anda.
  • Gunakan CSS valid bila memungkinkan. Sebagai pengecualian, menggunakan prefiks-vendor tertentu untuk mengambil keuntungan dari fitur CSS3.
  • Minimalkan hacks CSS. Pengecualian jelas adalah browser-spesifik dukungan, biasanya versi IE. Jika memungkinkan, terpisah CSS hacks ke bagian terpisah atau file terpisah.
  • Semua elemen HTML mungkin harus ditata oleh tema Anda (kecuali itu adalah tema anak), baik dalam isi posting /halaman dan di isi komentar.
    • Tabel, keterangan, gambar, daftar, blok kutipan, dan lain-lain.
  • Menambahkan gaya ramah cetak sangat dianjurkan.
    • Anda dapat menyertakan stylesheet cetak dengan Media = "print" atau menambahkan dalam media cetak blok di stylesheet utama Anda.

Fungsi Berkas

Tema opsional dapat menggunakan file fungsi, yang berada dalam tema subdirektori dan diberi nama functions.php . File ini pada dasarnya bertindak seperti Plugin, dan jika hadir dalam tema yang Anda gunakan, maka secara otomatis dimuat selama inisialisasi WordPress (baik untuk halaman admin dan halaman eksternal). Kegunaan disarankan untuk file ini:

Tema default Wordpress berisi 'functions.php' file yang mendefinisikan banyak dari fitur ini, sehingga Anda mungkin ingin menggunakannya sebagai model. Sejak functions.php pada dasarnya berfungsi sebagai plugin, yang Function_Reference daftar adalah tempat terbaik untuk pergi untuk informasi lebih lanjut tentang apa yang dapat Anda lakukan dengan file ini.

'Catatan untuk memutuskan kapan untuk menambahkan fungsi untuk' 'functions.php' 'atau plugin tertentu:' Anda mungkin menemukan bahwa Anda perlu fungsi yang sama akan tersedia untuk lebih dari satu orang tua tema. Jika itu terjadi, fungsi harus dibuat dalam Plugin bukannya functions.php untuk tema tertentu. Hal ini dapat mencakup tag template dan fungsi spesifik lainnya. Fungsi yang terkandung dalam plugin akan terlihat oleh semua tema.

Template File

Template adalah file PHP sumber yang digunakan untuk menghasilkan halaman yang diminta oleh pengunjung, dan output sebagai HTML. File template terdiri dari HTML, PHP, dan [Template [Tag | WordPress Template Tags]].

Mari kita lihat berbagai template yang dapat didefinisikan sebagai bagian dari Tema.

WordPress memungkinkan Anda untuk menentukan template terpisah untuk berbagai aspek dari situs Anda. Hal ini tidak penting, namun, untuk memiliki semua file-file ini template yang berbeda untuk situs Anda untuk sepenuhnya fungsi. Template dipilih dan dihasilkan berdasarkan Template Hierarchy, tergantung pada apa template yang tersedia dalam tema tertentu.

Sebagai pengembang Tema, Anda dapat memilih jumlah kustomisasi Anda ingin menerapkan menggunakan template. Misalnya, sebagai kasus ekstrim, Anda dapat menggunakan hanya satu file template, yang disebut index.php sebagai template untuk semua halaman yang dihasilkan dan ditampilkan oleh situs. Sebuah penggunaan yang lebih umum adalah untuk memiliki file template yang berbeda menghasilkan hasil yang berbeda, untuk memungkinkan kustomisasi maksimum.

Template Daftar File

Berikut adalah daftar file Tema diakui oleh WordPress. Tentu saja, Anda dapat Tema mengandung lainnya stylesheet, gambar, atau file. Hanya perlu diingat bahwa setelah telah arti khusus untuk WordPress - lihat Template Hierarchy untuk informasi lebih lanjut.

style.css
The stylesheet utama. Ini 'harus' disertakan dengan tema Anda, dan itu harus berisi header informasi untuk tema Anda.
rtl.css
The rtl stylesheet. Ini akan dimasukkan 'otomatis' jika arah teks website adalah kanan-ke-kiri. Ini dapat dihasilkan dengan menggunakan RTLer Plugin.
index.php
Template utama. Jika Anda Theme menyediakan template sendiri, index.php harus hadir.
comments.php
Komentar Template.
front-page.php
Halaman Template depan.
home.php
Halaman rumah Template, yang merupakan halaman depan secara default. Jika Anda menggunakan halaman depan statis ini adalah template untuk halaman dengan tulisan terbaru.
single.php
Single template posting. Digunakan ketika posting tunggal tanya. Untuk ini dan semua permintaan template lain, index.php digunakan jika template permintaan tidak hadir.
single {pasca-jenis} php
Single template posting digunakan ketika posting tunggal dari jenis posting kustom bertanya. Misalnya, single-book.php akan digunakan untuk menampilkan posting tunggal dari jenis posting kustom bernama "buku". index.php digunakan jika template permintaan untuk jenis posting kustom tidak hadir.
page.php
Halaman Template. Digunakan ketika seorang individu Halaman dipertanyakan.
category.php
The Template kategori. Digunakan ketika kategori dipertanyakan.
tag.php
The tag template. Digunakan ketika tag dipertanyakan.
taxonomy.php
The Template jangka. Digunakan ketika istilah dalam taksonomi kustom bertanya.
author.php
The Template penulis. Digunakan ketika seorang penulis dipertanyakan.
date.php
Tanggal /waktu Template. Digunakan ketika tanggal atau waktu bertanya. Tahun, bulan, hari, jam, menit, detik.
archive.php
Arsip Template. Digunakan ketika kategori, penulis, atau tanggal dipertanyakan. Perhatikan bahwa template ini akan diganti oleh category.php , author.php , dan date.php untuk jenis permintaan masing-masing.
search.php
Hasil pencarian Template. Digunakan ketika pencarian dilakukan.
attachment.php
Lampiran Template. Digunakan saat melihat lampiran tunggal.
image.php
Gambar lampiran Template. Digunakan saat melihat lampiran gambar tunggal. Jika tidak hadir, attachment.php akan digunakan.
404.php
The ' 404 Tidak Ditemukan' Template. Digunakan ketika WordPress tidak dapat menemukan posting atau halaman yang cocok query.

File-file ini memiliki arti khusus berkaitan dengan WordPress karena mereka digunakan sebagai pengganti index.php , bila tersedia, menurut Template Hierarchy, dan ketika sesuai Tag Bersyarat mengembalikan true. Misalnya, jika hanya single post sedang ditampilkan, is_single () fungsi kembali 'benar', dan, jika ada tunggal 'file php' di Tema aktif, template yang digunakan untuk menghasilkan halaman.

Dasar Template

Pada sangat minimal, Tema WordPress terdiri dari dua file:

  • Style.css
  • Index.php

Kedua file ini masuk ke direktori tema. The index.php Template file sangat fleksibel. Hal ini dapat digunakan untuk memasukkan semua referensi untuk header, sidebar, footer, konten, kategori, arsip, pencarian, kesalahan, dan halaman lain dibuat di WordPress.

Atau, dapat dibagi menjadi file template modular, masing-masing mengambil bagian dari beban kerja. Jika Anda tidak menyediakan file template lainnya, WordPress mungkin memiliki file standar atau fungsi untuk melakukan pekerjaan mereka. Misalnya, jika Anda tidak memberikan searchform.php file template, WordPress memiliki fungsi default untuk menampilkan form pencarian.

File template khas meliputi:

  • Comments.php
  • Komentar-popup.php
  • Footer.php
  • Header.php
  • Sidebar.php

Menggunakan file template ini Anda dapat menempatkan tag template dalam index.php master file untuk memasukkan file-file lain di mana Anda ingin mereka untuk tampil di halaman yang dihasilkan akhir.

Berikut adalah contoh dari termasuk penggunaan:

? <get_sidebar php (); ?>

? <get_footer php (); ?>

File default untuk beberapa fungsi template dapat usang atau tidak hadir, dan Anda harus menyediakan file-file ini dalam tema Anda. Pada versi 3.0, file standar usang terletak di wp-includes /tema-compat#L0 wp-includes /tema-compat. Misalnya, Anda harus menyediakan header.php untuk fungsi get_header () untuk bekerja dengan aman, dan comments.php untuk fungsi comments_template () .

Untuk lebih lanjut tentang bagaimana berbagai Template bekerja dan bagaimana untuk menghasilkan informasi yang berbeda dalam diri mereka, membaca Template dokumentasi.

Kustom Page Template

File mendefinisikan setiap halaman template ditemukan di Themes Anda direktori. Untuk membuat halaman kustom baru template untuk halaman Anda harus membuat sebuah file. Mari kita sebut halaman template pertama kami untuk halaman kami snarfer.php . Di bagian atas dari 'snarfer.php' 'file', menempatkan berikut:

<? php
/*
Nama Template: Snarfer
* /
?>

Kode di atas mendefinisikan ini snarfer.php berkas sebagai "Snarfer" template. Tentu, "Snarfer" dapat digantikan dengan sebagian teks untuk mengubah nama template halaman. Nama template ini akan muncul di Theme Editor sebagai link untuk mengedit file ini.

<! - 'Template Nama' dan 'Halaman Template' di paragraf sebelumnya diubah untuk menghapus topi awal karena mereka istilah generik. Aku telah menghapus beberapa orang lain atas dan di bawah. Silahkan hubungi saya jika saya melanggar gaya rumah WordPress. r-sr ->

File mungkin bernama hampir apa-apa dengan php ekstensi (lihat dilindungi Tema nama file untuk nama file Anda harus tidak digunakan, ini adalah khusus nama file cadangan WordPress untuk tujuan tertentu).

Berikut di atas lima baris kode terserah Anda. Sisa dari kode yang Anda tulis akan mengendalikan bagaimana halaman yang menggunakan Snarfer halaman template akan ditampilkan. Lihat Template Tags untuk penjelasan dari berbagai fungsi template WordPress Anda dapat menggunakan untuk tujuan ini. Anda mungkin merasa lebih nyaman untuk menyalin beberapa template lainnya (mungkin page.php atau index.php ) untuk snarfer.php dan kemudian tambahkan di atas lima baris kode ke awal berkas. Dengan cara itu, Anda hanya perlu alter HTML dan kode PHP, bukan menciptakan semuanya dari awal. Contoh ditunjukkan bawah. Setelah Anda membuat template halaman dan ditempatkan di direktori tema Anda, itu akan tersedia sebagai pilihan ketika Anda membuat atau mengedit halaman. ( 'Catatan' :. Saat membuat atau mengedit halaman, opsi Template Halaman tidak muncul kecuali ada setidaknya satu template didefinisikan dengan cara di atas)

Berbasis Query Template Files

WordPress dapat memuat berbagai Template untuk berbeda permintaan jenis. Ada dua cara untuk melakukannya: sebagai bagian dari built-in Template Hirarki, dan melalui penggunaan Conditional Tags dalam The Loop dari file template.

Untuk menggunakan Template Hierarchy, pada dasarnya anda perlu menyediakan tujuan khusus file Template, yang secara otomatis akan digunakan untuk mengesampingkan index.php . Misalnya, jika Anda Theme menyediakan template yang disebut category.php dan kategori sedang bertanya, category.php akan dimuat bukan index.php . Jika category.php tidak hadir, index.php digunakan seperti biasa.

Anda bisa mendapatkan bahkan lebih spesifik dalam Template Hierarchy dengan menyediakan sebuah file yang bernama, misalnya, kategori-6.php - file ini akan digunakan daripada category.php saat membuat halaman untuk kategori yang nomor ID adalah 6. (Anda dapat menemukan nomor ID kategori di Pengelolaan> Kategori jika Anda login sebagai administrator situs di WordPress versi 2.3 dan di bawah ini. Dalam WordPress 2.5 kolom ID telah dihapus dari panel Admin. Anda dapat menemukan kategori id dengan mengklik 'Edit Kategori' dan mencari di URL address bar untuk nilai cat_id. Ini akan terlihat '... categories.php? action = edit & cat_id = 3 'di mana' 3 'adalah kategori id). Untuk melihat lebih rinci bagaimana proses ini bekerja, lihat Kategori Template.

Jika Tema Anda perlu memiliki lebih kontrol atas file mana Template yang digunakan dibandingkan dengan yang ada di Template Hierarchy, Anda dapat menggunakan Conditional Tags. Tag Bersyarat pada dasarnya memeriksa untuk melihat apakah beberapa kondisi tertentu adalah benar, dalam WordPress loop, dan kemudian Anda dapat memuat template tertentu, atau menaruh beberapa teks tertentu pada layar, berdasarkan kondisi itu.

Misalnya, untuk menghasilkan stylesheet yang khas dalam posting hanya ditemukan dalam kategori tertentu, kode akan terlihat seperti ini:

<? php
jika (is_category ('9')) {
    get_template_part ('single2'); //Mencari posting dalam kategori dengan ID dari '9'
} lain {
    get_template_part ('single 1'); //Menempatkan ini pada setiap lain pasca kategori
}
?>

Atau, menggunakan query, mungkin terlihat seperti ini:

<? php
$ post = $ wp_query-> posting;
jika (in_category ('9')) {
    get_template_part ('single2');
} lain {
    get_template_part ('single 1');
}
?>

Dalam kedua kasus, contoh kode ini akan menyebabkan template yang berbeda yang akan digunakan tergantung pada kategori pos tertentu yang ditampilkan. Kondisi permintaan tidak terbatas pada kategori, namun, melihat Conditional Tags artikel untuk melihat semua pilihan.

Defining Custom Template

Hal ini dimungkinkan untuk menggunakan sistem plugin WordPress untuk menentukan template tambahan yang ditampilkan berdasarkan kriteria kustom Anda sendiri. Fitur canggih ini dapat dicapai dengan menggunakan "template_redirect" aksi kail. Informasi lebih lanjut tentang membuat plugin dapat ditemukan di Plugin API referensi.

Termasuk Template File

Untuk memuat template lain (selain header, sidebar, footer, yang memiliki standar termasuk perintah seperti get_header () ) ke dalam template, Anda dapat menggunakan get_template_part () . Hal ini membuat mudah bagi Tema untuk menggunakan kembali bagian kode.

Mengacu File Dari Template

Ketika referensi file lain dalam tema yang sama, menghindari URI keras-kode dan path file. Referensi Sebaliknya URI dan path file dengan bloginfo () : lihat Mengacu File Dari Template.

Perhatikan bahwa URI yang digunakan dalam stylesheet yang relatif terhadap stylesheet, bukan halaman yang referensi stylesheet. Misalnya, jika Anda termasuk gambar / direktori dalam tema Anda, Anda hanya perlu menentukan direktori ini relatif dalam CSS, seperti:

h1 {
    background-image: url (images /my-background.jpg);
}

Hooks Plugin API

Ketika mengembangkan Tema, ada baiknya untuk diingat bahwa tema Anda harus dibentuk sehingga dapat bekerja dengan baik dengan plugin WordPress pengguna mungkin memutuskan untuk menginstal. Plugin menambah fungsionalitas ke WordPress melalui "Aksi Hooks" (lihat Plugin API untuk informasi lebih lanjut).

Kebanyakan Hooks Aksi berada dalam kode PHP inti WordPress, sehingga Tema Anda tidak harus memiliki tag khusus bagi mereka untuk bekerja. Tapi Hooks Action beberapa yang perlu hadir dalam tema Anda, agar Plugin untuk menampilkan informasi secara langsung di header, footer, sidebar, atau di dalam tubuh halaman. Berikut adalah daftar khusus Aksi Hook Template Tags Anda perlu menyertakan:

wp_enqueue_scripts
Digunakan dalam fungsi file tema. Digunakan untuk memuat skrip eksternal dan stylesheet.
wp_head ()
Goes dalam & lt; head & gt; unsur tema, di header.php . Misalnya Plugin penggunaan: menambahkan kode JavaScript.
wp_footer ()
Goes di footer.php , tepat sebelum penutupan </body> tag. Misalnya Plugin penggunaan: menyisipkan kode PHP yang perlu dijalankan setelah segala sesuatu yang lain, di bagian bawah footer. Sangat umum digunakan untuk menyisipkan kode web statistik, seperti Google Analytics.
wp_meta ()
Biasanya terjadi dalam <li> Meta </​​li> bagian dari menu Tema atau sidebar; sidebar.php Template. Misalnya Plugin penggunaan: termasuk iklan berputar atau tag cloud.
comment_form ()
Goes di comments.php langsung sebelum tag penutupan file ( </div> ). Misalnya Plugin penggunaan: menampilkan preview komentar.

Untuk contoh penggunaan dunia nyata, Anda akan menemukan ini kait Plugin termasuk dalam template default Tema ini.

Kustomisasi Theme API

Pada WordPress 3.4, fitur Kustomisasi Theme baru tersedia secara default untuk hampir semua tema WordPress. Tema Kustomisasi halaman admin secara otomatis diisi dengan pilihan yang tema menyatakan dukungan untuk dengan add_theme_support () atau menggunakan Pengaturan API, dan memungkinkan admin untuk melihat preview non-permanen perubahan yang mereka buat secara real waktu.

Theme dan plugin pengembang tertarik untuk menambahkan pilihan baru untuk tema yang Kustomisasi Theme halaman harus lihat dokumentasi pada Kustomisasi Theme API. Tutorial tambahan pada Kustomisasi Theme API yang tersedia di website.

Untrusted data

Anda harus melarikan diri dihasilkan secara dinamis konten di Theme, terutama konten yang output ke HTML atribut. Seperti tercantum dalam WordPress Coding Standards, teks yang masuk ke dalam atribut harus dijalankan melalui esc_attr () sehingga satu atau dua tanda kutip tidak berakhir nilai atribut dan membatalkan XHTML dan menyebabkan masalah keamanan. Tempat umum untuk memeriksa adalah judul , alt , dan value atribut.

Ada beberapa tag template khusus untuk kasus-kasus umum di mana output yang aman dibutuhkan. Salah satu kasus tersebut melibatkan outputing judul posting ke judul atribut menggunakan the_title_attribute () bukan the_title () untuk menghindari kerentanan keamanan. Berikut ini adalah contoh dari melarikan diri yang benar untuk judul atribut link judul posting ketika menggunakan teks diterjemahkan:

 <a href="<?php the_permalink(); ?> "title =" <? php sprintf (__ ('Link Permanen ke% s', 'tema-nama'), the_title_attribute ('echo = 0' ));?> "> <the_title php (); ?> </a> 

Ganti melarikan diri ditinggalkan panggilan dengan panggilan yang benar: wp_specialchars () dan htmlspecialchars () dengan esc_html () , clean_url () dengan [ [Fungsi Referensi /esc_url | esc_url () ]], dan attribute_escape () dengan esc_attr () . Lihat Data_Validation untuk lebih.

Terjemahan Dukungan /i18n

Untuk memastikan kelancaran transisi untuk lokalisasi bahasa, menggunakan WordPress gettext berbasis i18n fungsi untuk membungkus semua teks diterjemahkan dalam file template. Hal ini membuat lebih mudah untuk file terjemahan untuk menghubungkan dan menerjemahkan label, judul dan teks template lainnya ke dalam bahasa situs saat ini. Lihat lebih lanjut di WordPress Lokalisasi dan i18n untuk WordPress Pengembang.

Tema Kelas

Mengimplementasikan tag template berikut untuk menambahkan kelas WordPress dihasilkan atribut untuk elemen tubuh, posting, dan komentar. Untuk kelas pos, hanya berlaku untuk unsur-unsur dalam The Loop.

Template Checklist Berkas

Ketika mengembangkan Tema, periksa file template Anda terhadap standar file template berikut.

Dokumen Head (header.php)

  • Gunakan tepat DOCTYPE.
  • Pembukaan <html> tag harus mencakup language_attributes () .
  • <meta> charset elemen harus ditempatkan sebelum segala sesuatu yang lain, termasuk <title> elemen.
  • Gunakan bloginfo () untuk mengatur elemen <meta> charset dan deskripsi.
  • Gunakan wp_title () untuk mengatur <title> elemen. Lihat mengapa.
  • Gunakan Link Pakan Otomatis untuk menambahkan link umpan.
  • Tambahkan panggilan ke wp_head () sebelum penutupan </head> tag. Plugin menggunakan ini aksi kait untuk menambahkan skrip sendiri, stylesheet, dan fungsi lainnya.
  • Jangan link stylesheet tema dalam template Header. Gunakan wp_enqueue_scripts tindakan kail dalam fungsi tema gantinya.

Berikut ini adalah contoh dari HTML5 kepala daerah sesuai dengan benar-diformat:

<! DOCTYPE html>
? <html <language_attributes php (); ? >>
    <head>
        <meta charset = "<? php bloginfo ('charset');?>" />
        ? <title> <wp_title php (); ?> </title>
        <link rel = "profil" href = "http://gmpg.org/xfn/11" />
        <link rel = "pingback" href = "<? php bloginfo ('pingback_url');?>" />
        <? php if (is_singular () && get_option ('thread_comments')) wp_enqueue_script ('comment-reply'); ?>
        ? <wp_head php (); ?>
    </head>

Navigation Menu ( header.php )

  • Navigasi utama Tema harus mendukung menu kustom dengan wp_nav_menu () .
    • Menu harus mendukung judul link yang panjang dan sejumlah besar daftar item. Barang-barang ini harus tidak melanggar desain atau tata letak.
    • Item Submenu harus menampilkan dengan benar. Jika memungkinkan, mendukung gaya menu drop-down untuk item submenu. Drop-down yang memungkinkan menampilkan kedalaman menu bukan hanya menunjukkan tingkat atas.

Widget ( sidebar.php )

  • Tema harus widgetized semaksimal mungkin. Setiap daerah dalam tata letak yang bekerja seperti widget (tag cloud, blogroll, daftar kategori) atau bisa menerima widget (sidebar) harus memungkinkan widget.
  • Konten yang muncul di daerah-daerah widgetized secara default (sulit-kode ke sidebar, misalnya) harus menghilang ketika widget diaktifkan dari Penampilan> Widget.

Footer ( footer.php )

? <wp_footer php (); ?>
</body>
</html>

Indeks ( index.php )

  • Menampilkan daftar posting dalam kutipan atau full-length bentuk. Pilih satu atau yang lain yang sesuai.
  • Sertakan wp_link_pages () untuk mendukung link navigasi dalam posting.

Arsip ( archive.php )

  • Judul Tampilan arsip (tag, kategori, berdasarkan tanggal, atau penulis arsip).
  • Menampilkan daftar posting dalam kutipan atau full-length bentuk. Pilih satu atau yang lain yang sesuai.
  • Sertakan wp_link_pages () untuk mendukung link navigasi dalam posting.

Pages ( page.php )

  • Judul halaman Tampilan dan konten halaman.
  • Daftar Tampilan komentar dan formulir komentar (kecuali komentar yang off).
  • Sertakan wp_link_pages () untuk mendukung link navigasi dalam halaman.
  • Metadata seperti tag, kategori, tanggal dan penulis tidak harus ditampilkan.
  • Tampilan sebuah link "Edit" untuk log-in pengguna dengan mengedit izin.

Single Post ( single.php )

  • Sertakan wp_link_pages () untuk mendukung link navigasi dalam post.
  • Judul posting Tampilan dan isi posting.
    • Judul harus teks biasa bukan link yang menunjuk ke dirinya sendiri.
  • Menampilkan tanggal posting.
  • Tampilan nama penulis (jika sesuai).
  • Posting Tampilan kategori dan pasca tag.
  • Tampilan sebuah link "Edit" untuk log-in pengguna dengan mengedit izin.
  • Daftar Tampilan komentar dan formulir komentar.
  • Tampilkan navigasi link ke depan dan posting sebelumnya menggunakan previous_post_link () dan next_post_link () .

Komentar ( comments.php )

  • Penulis komentar harus disorot berbeda.
  • Tampilan Gravatars (user avatar) jika sesuai.
  • Dukungan berulir komentar.
  • Tampilan Pelacakan /pingbacks.
  • File ini tidak boleh mengandung definisi fungsi kecuali di function_exist () periksa untuk menghindari kesalahan pernyataan ulang. Idealnya semua fungsi harus di functions.php .

Hasil Pencarian ( search.php )

  • Menampilkan daftar posting dalam kutipan atau full-length bentuk. Pilih satu atau yang lain yang sesuai.
  • The halaman hasil pencarian menunjukkan istilah pencarian yang dihasilkan hasil. Ini adalah cara yang sederhana namun bermanfaat untuk mengingatkan seseorang apa yang baru saja mereka mencari - terutama dalam kasus nol hasil. Gunakan the_search_query () atau get_search_query () (display atau kembali nilai, masing-masing). Sebagai contoh:
     <h2> <? Php printf:;? (__ ('Hasil pencarian untuk% s'), '<span>' get_search_query () '</span>'..) ?> </h2> 
  • Ini adalah praktik yang baik untuk menyertakan form pencarian lagi pada halaman hasil. Termasuk dengan: get_search_form () .

=== === JavaScript

  • Kode JavaScript harus ditempatkan dalam file eksternal bila memungkinkan.
  • Gunakan wp_enqueue_script () untuk memuat script Anda.
  • JavaScript dimuat langsung ke dalam dokumen HTML (file template) harus CDATA dikodekan untuk mencegah kesalahan dalam browser lama.
<script type = "text /javascript">
/* <! [CDATA [* /
//Isi Javascript Anda pergi di sini
/*]]> * /
</script>

=== === Screenshot

Membuat screenshot untuk tema Anda. Screenshot harus dinamai screenshot.png , dan harus ditempatkan di direktori tingkat atas. Screenshot harus akurat menunjukkan desain tema dan disimpan dalam format PNG. Ukuran gambar yang dianjurkan adalah '880x660' . Screenshot hanya akan ditampilkan sebagai 387x290, tapi lebih gambar ganda berukuran memungkinkan untuk resolusi tinggi melihat pada HiDPI display.

Perhatikan bahwa opsional, .jpg, .jpeg, dan Gif juga ekstensi yang valid dan format file untuk screenshot (meskipun tidak disarankan).

Tema Pilihan

Tema opsional dapat mendukung Tema Sesuaikan Layar. Untuk kode contoh, lihat Theme WordPress Contoh Pilihan Halaman.

Ketika memungkinkan ketersediaan Theme Sesuaikan Layar untuk pengguna peran, menggunakan "edit_theme_options" kemampuan pengguna bukan "switch_themes" kemampuan kecuali peran pengguna sebenarnya juga harus mampu untuk beralih Tema. Lihat lebih lanjut di Peran dan Kemampuan dan Menambahkan Administrasi Menu.

Jika Anda menggunakan "edit_themes" kemampuan di mana saja di Theme untuk mendapatkan akses peran Administrator ke Tema Sesuaikan Layar (atau mungkin beberapa layar kustom), menyadari bahwa sejak Versi 3.0, kemampuan ini tidak ditugaskan ke Peran administrator secara default dalam kasus WordPress Multisite instalasi. Lihat penjelasan. Dalam kasus seperti itu, gunakan "edit_theme_options" kemampuan bukan jika Anda ingin Administrator untuk melihat "Tema Options". Lihat kemampuan tambahan dari peran Administrator ketika menggunakan WordPress Multisite.

Proses Pengujian Tema

  1. Fix PHP dan kesalahan WordPress. Tambahkan pengaturan berikut untuk men-debug wp-config.php file Anda untuk melihat usang panggilan fungsi dan kesalahan-WordPress terkait lainnya: define ('WP_DEBUG', true); . Lihat Fungsi Usang Menghubungkan untuk informasi lebih lanjut.
  2. File Periksa Template terhadap Checklist Template File (lihat di atas).
  3. Lakukan run-melalui menggunakan Theme Unit Test tersebut.
  4. Validasi HTML dan CSS. Lihat Memvalidasi Website.
  5. Periksa kesalahan JavaScript.
  6. Tes di semua sasaran browser Anda. Misalnya, IE9, Safari, Chrome, Opera, Firefox dan Microsoft Edge.
  7. Bersihkan komentar asing, pengaturan debug, atau item TODO.
  8. Lihat Theme Review jika Anda menyebarluaskan Theme dengan mengirimkan ke direktori Tema.

Sumber dan Referensi

Kode Standar

Tema Desain

=== === CSS

=== === Template

Daftar Fungsi

Pengujian dan QA

Rilis & Promosi

Kategori: Desain dan Layout Kategori: Pengembangan WordPress Kategori: UI Link

Eksternal Sumber Daya & Tutorial