Struktur template hierarki pada WordPress
Didalam Wordpress terdapat berbagai macam template file hierarki. Pada artikel ini kita akan sama-sam
Hierarki template file
String kueri adalah informasi yang terkandung dalam setiap tautan atau link dibagian situs web. Itu muncul setelah tanda tanya awal dan mungkin berisi sejumlah parameter yang dipisahkan oleh ampersand.
Cara kerjanya, WordPress mencari melalui hierarki template hingga menemukan template file yang cocok.
Untuk menentukan template file mana yang akan digunakan, Berikut gambarannya:
- Mencocokkan setiap string kueri dengan jenis kueri untuk memutuskan halaman mana yang diminta (misalnya, halaman pencarian, halaman kategori, dll)
- Memilih template dalam urutan yang ditentukan oleh hierarki template
- Mencari template file dengan nama tertentu di direktori tema saat ini dan menggunakan template file pertama yang cocok seperti yang ditentukan oleh hierarki.
Pada template file, index.php sebagai pengecualian, Anda dapat memilih apakah Anda ingin menerapkan template file tertentu atau tidak dalam template yang lebih spesifik.
Jika WordPress tidak dapat menemukan template file dengan nama yang cocok, itu akan melompat ke file berikutnya dalam hierarki.
Jika WordPress tidak dapat menemukan template file yang cocok untuk kedua kalinya dan seterusnya, maka yang terakhir akan menggunakan template file index.php.
Contoh
Jika Anda berada pada alamat https://domain.com/blog/ dan pengunjung mengklik ke halaman kategori seperti https://domain.com/blog/category/cat-{yang dipilih}.
Maka WordPress akan mencari template file di direktori tema saat ini yang cocok dengan ID kategori untuk menampilkan halaman yang benar. Untuk lebih jelas lagi WordPress melangkah dalam hierarki file seperti berikut:
- Mencari template file di direktori tema saat ini yang cocok dengan slug kategori. Jika slug kategori adalah “komputer”, maka WordPress mencari template file bernama
category-komputer.php
. - Jika
category-komputer.php
tidak ada dan ID kategorinya adalah 15 misalnya, WordPress mencari template file yang bernamacategory-15.php
. - Jika
category-15.php
tidak ada, WordPress akan mencari template file kategori umumcategory.php
. - Jika
category.php
tidak ada, WordPress akan mencari templat arsip umumarchive.php
. - Jika
archive.php
tidak ada, WordPress akan kembali ke template file tema pengecualian yaituindex.php
.
Gambaran visual
Pada gambar dibawah ini, menunjukkan template file mana yang dipanggil untuk menghasilkan halaman wordpress berdasarkan permintaan pengunjung dalam langkah mencari hierarki template file:

Template hierarki secara detail
Mungkin Anda sudah memahi gambaran hierarki dalam WordPress. Namun apakah Anda tahu langkah hierarki pada template file yang lainnya.
Bagian berikut akan menjelaskan urutan pemanggilan template file oleh WordPress untuk sejumlah String kueri tertentu.
Home Page
Secara default, WordPress menyetel home atau beranda disitus Anda untuk menampilkan posting blog terbaru. Template file home.php
digunakan untuk membuat indeks posting blog.
Jika home.php
tidak ada, WordPress akan menggunakan index.php
.
Front Page
Template file front-page.php
digunakan untuk membuat halaman depan disitus Anda, front-page.php
lebih diutamakan dari pada home.php
.
Jika front-page.php
tidak ada, WordPress akan menggunakan home.php
atau page.php
tergantung pada pengaturan di Settings → Reading.
Jika tidak ada satu pun file tersebut, maka WordPress akan menggunakan index.php
.
front-page.php
– Digunakan untuk menampilkan “your latest posts” atau “a static page” yang diatur di bagian Settings → Reading.home.php
– Digunakan jika WordPress tidak dapat menemukanfront-page.php
dan “your latest posts” yang diatur di bagian Settings → Reading.page.php
– Digunakan jika Anda memilih salah satu halaman di Settings → Reading.index.php
– Digunakan jika “your latest posts” tidak ada,home.php
tidak ada, dan salah satu halaman dipilih tetapipage.php
tidak ada.
Privacy Policy
Template file privacy-policy.php
digunakan untuk membuat halaman Kebijakan Privasi disitus Anda. Kebijakan Privasi lebih diutamakan dari pada page.php
dihalaman static.
Jika privacy-policy.php
tidak ada, WordPress akan menggunakan page.php
atau singular.php
tergantung pada template file yang tersedia.
Jika tidak ada satu pun file tersebut, maka WordPress akan menggunakan index.php
.
privacy-policy.php
– Digunakan untuk halaman Kebijakan Privasi yang diatur di bagian Change your Privacy Policy page pada Settings → Privacy.custom template file
– Template halaman yang ditetapkan ke halaman.page-{slug}.php
– Digunakan jika slug halaman adalahprivacy
, jadi halaman akan terlihat sepertipage-privacy.php
.page-{id}.php
– Digunakan jika ID halaman 15 misalnya, jadi halaman akan terlihat sepertipage-15.php
.page.php
singular.php
index.php
Single Post
Template file single atau posting tunggal digunakan untuk membuat atau menampilkan satu posting tunggal. WordPress menggunakan jalur berikut:
single-{post-type}-{slug}.php
– (Sejak versi WordPress 4.4) Pertama, WordPress mencari template untuk posting tertentu. Misalnya, jika jenis posting adalahproduk
dan slug posting adalahbuku-15
, WordPress akan mencarisingle-produk-buku-15.php
.single-{post-type}.php
– Jika jenis postingnya adalahproduk
, WordPress akan mencarisingle-produk.php
.single.php
– Digunakan jikasingle-{post-type}-{slug}.php
dansingle-{post-type}.php
tidak ada.singular.php
– Digunakan jikasingle.php
tidak ada.index.php
– Digunakan jikasingle.php
, dansingular.php
tidak ada.
Single Page
Template file page digunakan untuk membuat halaman static (page post-type). Perhatikan bahwa tidak seperti jenis posting lainnya, page khusus pada WordPress menggunakan jalur berikut:
custom template file
– Template halaman yang ditetapkan ke halaman.page-{slug}.php
– Digunakan jika slug halaman adalahblog-travel
misalnya, jadi halaman akan terlihat sepertipage-blog-travel.php
.page-{id}.php
– Digunakan jika ID halaman 15 misalnya, jadi halaman akan terlihat sepertipage-15.php
.page.php
singular.php
index.php
Category
Template file category.php
digunakan untuk merender halaman indeks arsip kategori menggunakan jalur berikut di WordPress:
category-{slug}.php
– Digunakan jika slug kategorinya adalahkomputer
misalnya, jadi halaman akan terlihat seperticategory-komputer.php
.category-{id}.php
– Digunakan jika ID kategori adalah 15 misalnya, jadi halaman akan terlihat seperticategory-15.php
.category.php
archive.php
index.php
Tag
Template file tag.php
digunakan untuk merender halaman indeks arsip tag menggunakan jalur berikut di WordPress:
tag-{slug}.php
– Digunakan jika slug tag nya adalahkomputer
misalnya, jadi halaman akan terlihat sepertitag-komputer.php
.tag-{id}.php
– Digunakan jika ID tagnya adalah 15 misalnya, jadi halaman akan terlihat sepertitag-15.php
.archive.php
index.php
Custom Taxonomies
Template file taxonomy.php
menggunakan jalur file kerangka yang sedikit berbeda:
taxonomy-{taxonomy}-{term}.php
– Jika taksonomi adalahsometax
, dan istilah taksonomi adalahsometerm
, WordPress akan mencaritaxonomy-sometax-someterm.php.
Dalam kasus format posting , taksonomi adalah ‘post_format’ dan istilahnya adalah ‘post-format- {format}. yaitutaxonomy-post_format-post-format-link.php
untuk format link post.taxonomy-{taxonomy}.php
– Digunakan jika taksonomi itusometax
misalnya, jadi halaman akan terlihat sepertitaxonomy-sometax.php
.taxonomy.php
archive.php
index.php
Custom Post Types
Custom post type menggunakan jalur berikut untuk membuat halaman indeks arsip yang sesuai.
archive-{post_type}.php
– Jika tipe postingnyakomputer
misalnya, jadi halaman akan terlihat sepertiarchive-komputer.php
.archive.php
index.php
Author
Template file author.php
digunakan untuk merender halaman indeks arsip author atau penulis menggunakan jalur berikut di WordPress:
author-{nicename}.php
– Jika nama penulishendky
misalnya, jadi halaman akan terlihat sepertiauthor-hendky.php
.author-{id}.php
– Digunakan jika ID penulis adalah15
misalnya, jadi halaman akan terlihat sepertiauthor-15.php
.author.php
archive.php
index.php
Date
Template file date.php
digunakan untuk halaman indeks arsip berbasis date atau tanggal, dan ditampilkan seperti yang Anda harapkan:
date.php
archive.php
index.php
Search
Template file search.php
digunakan untuk halaman pencarian dan mengikuti pola yang sama seperti jenis template file lainnya.
search.php
index.php
404
Template file 404.php
digunakan jika halaman yang diminta tidak ada dan urutan didalam WordPress seperti ini:
404.php
index.php
Attachment
Template file attachment.php
digunakan untuk merender halaman attachment atau lampiran (attachmentpost-type) dan urutan didalam WordPress seperti ini:
{MIME-type}.php
– dapat berupa tipe MIME (Misalnya:image.php
,video.php
,pdf.php
). Untuktext/plain
, jalur berikut digunakan (secara berurutan):text-plain.php
plain.php
text.php
attachment.php
single-attachment-{slug}.php
– Misalnya, jika slug lampirannya adalahbuku
, jadi halaman akan terlihat sepertisingle-attachment-buku.php
.single-attachment.php
single.php
singular.php
index.php
Embeds
Template file embed.php
digunakan untuk membuat post yang sedang disematkan. Sejak WordPress versi 4.5 menggunakan jalur berikut:
embed-{post-type}-{post_format}.php
– Pertama, WordPress mencari template untuk posting tertentu.
Misalnya, jika jenis postingnya adalahpost
dan memiliki format audio, WordPress akan mencariembed-post-audio.php
.embed-{post-type}.php
– Digunakan jika jenis postingnya adalahkomputer
misalnya, WordPress akan mencariembed-komputer.php
.embed.php
– Digunakan jikaembed-{post-type}-{post_format}.php
danembed-{post-type}.php
tidak ada.- Akhirnya, WordPress kembali ke templatenya sendiri
wp-includes/theme-compat/embed.php
.
Filter Hierarchy
Sistem template pada WordPress memungkinkan Anda memfilter hierarki. Ini berarti Anda dapat menyisipkan dan mengubah hal-hal pada titik tertentu dari hierarki.
Filter ( terletak difungsi get_query_template()
) menggunakan nama filter ini: di "{$type}_template"
nama $type
jenis templatnya.
Berikut adalah daftar semua filter yang tersedia dalam hierarki template:
embed_template
404_template
search_template
frontpage_template
home_template
privacypolicy_template
taxonomy_template
attachment_template
single_template
page_template
singular_template
category_template
tag_template
author_template
date_template
archive_template
index_template
Contoh
Misalnya, ambil hierarki autor atau penulis default:
author-{nicename}.php
author-{id}.php
author.php
Untuk menambahkan author-{role}.php
sebelum author.php
, kita dapat memanipulasi hierarki sebenarnya menggunakan jenis template ‘author_template’.
Ini memungkinkan permintaan untuk / author / username di mana nama pengguna memiliki peran editor untuk ditampilkan menggunakan author-editor.php
jika ada di direktori tema saat ini.
function author_role_template( $templates = '' ) {
$author = get_queried_object();
$role = $author->roles[0];
if ( ! is_array( $templates ) && ! empty( $templates ) ) {
$templates = locate_template( array( "author-$role.php", $templates ), false );
} elseif ( empty( $templates ) ) {
$templates = locate_template( "author-$role.php", false );
} else {
$new_template = locate_template( array( "author-$role.php" ) );
if ( ! empty( $new_template ) ) {
array_unshift( $templates, $new_template );
}
}
return $templates;
}
add_filter( 'author_template', 'author_role_template' );