Template hierarki pada wordpress

membuat tema wordpress

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:

  1. Mencocokkan setiap string kueri dengan jenis kueri untuk memutuskan halaman mana yang diminta (misalnya, halaman pencarian, halaman kategori, dll)
  2. Memilih template dalam urutan yang ditentukan oleh hierarki template
  3. 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:

  1. 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.
  2. Jika category-komputer.php tidak ada dan ID kategorinya adalah 15 misalnya, WordPress mencari template file yang bernama category-15.php.
  3. Jika category-15.php tidak ada, WordPress akan mencari template file kategori umum category.php.
  4. Jika category.php tidak ada, WordPress akan mencari templat arsip umum archive.php.
  5. Jika archive.php tidak ada, WordPress akan kembali ke template file tema pengecualian yaitu index.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:

gambaran visual hierarki

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.

Informasi: Jika front-page.php ada, itu akan menimpa  home.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 SettingsReading.

Jika tidak ada satu pun file tersebut, maka WordPress akan menggunakan index.php.

  1. front-page.php – Digunakan untuk menampilkan “your latest posts” atau “a static page” yang diatur di bagian Settings → Reading.
  2. home.php – Digunakan jika WordPress tidak dapat menemukan  front-page.php dan “your latest posts” yang diatur di bagian Settings → Reading.
  3. page.php – Digunakan jika Anda memilih salah satu halaman di Settings → Reading.
  4. index.php – Digunakan jika “your latest posts” tidak ada, home.php tidak ada, dan salah satu halaman dipilih tetapi page.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.

  1. privacy-policy.php – Digunakan untuk halaman Kebijakan Privasi yang diatur di bagian Change your Privacy Policy page pada Settings → Privacy.
  2. custom template file – Template halaman yang ditetapkan ke halaman.
  3. page-{slug}.php – Digunakan jika slug halaman adalah privacy, jadi halaman akan terlihat seperti page-privacy.php.
  4. page-{id}.php – Digunakan jika ID halaman 15 misalnya, jadi halaman akan terlihat seperti page-15.php.
  5. page.php
  6. singular.php
  7. index.php

Single Post

Template file single atau posting tunggal digunakan untuk membuat atau menampilkan satu posting tunggal. WordPress menggunakan jalur berikut:

  1. single-{post-type}-{slug}.php – (Sejak versi WordPress 4.4) Pertama, WordPress mencari template untuk posting tertentu. Misalnya, jika jenis posting adalah produk dan slug posting adalah buku-15, WordPress akan mencari single-produk-buku-15.php.
  2. single-{post-type}.php – Jika jenis postingnya adalah produk, WordPress akan mencari single-produk.php.
  3. single.php – Digunakan jika single-{post-type}-{slug}.php dan single-{post-type}.php tidak ada.
  4. singular.php – Digunakan jika single.php tidak ada.
  5. index.php – Digunakan jika single.php, dan singular.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:

  1. custom template file – Template halaman yang ditetapkan ke halaman. 
  2. page-{slug}.php – Digunakan jika slug halaman adalah blog-travel misalnya, jadi halaman akan terlihat seperti page-blog-travel.php.
  3. page-{id}.php – Digunakan jika ID halaman 15 misalnya, jadi halaman akan terlihat seperti page-15.php.
  4. page.php
  5. singular.php
  6. index.php

Category

Template file category.php digunakan untuk merender halaman indeks arsip kategori menggunakan jalur berikut di WordPress:

  1. category-{slug}.php – Digunakan jika slug kategorinya adalah komputer misalnya, jadi halaman akan terlihat seperti category-komputer.php.
  2. category-{id}.php – Digunakan jika ID kategori adalah 15 misalnya, jadi halaman akan terlihat seperti category-15.php.
  3. category.php
  4. archive.php
  5. index.php

Tag

Template file tag.php digunakan untuk merender halaman indeks arsip tag menggunakan jalur berikut di WordPress:

  1. tag-{slug}.php – Digunakan jika slug tag nya adalah komputer misalnya, jadi halaman akan terlihat seperti tag-komputer.php.
  2. tag-{id}.php – Digunakan jika ID tagnya adalah 15 misalnya, jadi halaman akan terlihat seperti tag-15.php.
  3. archive.php
  4. index.php

Custom Taxonomies

Template file taxonomy.php menggunakan jalur file kerangka yang sedikit berbeda:

  1. taxonomy-{taxonomy}-{term}.php – Jika taksonomi adalah sometax, dan istilah taksonomi adalah someterm, WordPress akan mencari taxonomy-sometax-someterm.php.

    Dalam kasus format posting , taksonomi adalah ‘post_format’ dan istilahnya adalah ‘post-format- {format}. yaitu taxonomy-post_format-post-format-link.php untuk format link post.

  2. taxonomy-{taxonomy}.php – Digunakan jika taksonomi itu sometax misalnya, jadi halaman akan terlihat seperti taxonomy-sometax.php.
  3. taxonomy.php
  4. archive.php
  5. index.php

Custom Post Types

Custom post type menggunakan jalur berikut untuk membuat halaman indeks arsip yang sesuai.

  1. archive-{post_type}.php – Jika tipe postingnya komputer misalnya, jadi halaman akan terlihat seperti  archive-komputer.php.
  2. archive.php
  3. index.php

Author

Template file author.php digunakan untuk merender halaman indeks arsip author atau penulis menggunakan jalur berikut di WordPress:

  1. author-{nicename}.php – Jika nama penulis hendky misalnya, jadi halaman akan terlihat seperti author-hendky.php.
  2. author-{id}.php – Digunakan jika ID penulis adalah 15 misalnya, jadi halaman akan terlihat seperti author-15.php.
  3. author.php
  4. archive.php
  5. index.php

Date

Template file date.php digunakan untuk halaman indeks arsip berbasis date atau tanggal, dan ditampilkan seperti yang Anda harapkan:

  1. date.php
  2. archive.php
  3. index.php

Template file search.php digunakan untuk halaman pencarian dan mengikuti pola yang sama seperti jenis template file lainnya.

  1. search.php
  2. index.php

404

Template file 404.php digunakan jika halaman yang diminta tidak ada dan urutan didalam WordPress seperti ini:

  1. 404.php
  2. index.php

Attachment

Template file attachment.php digunakan untuk merender halaman attachment atau lampiran (attachmentpost-type) dan urutan didalam WordPress seperti ini:

  1. {MIME-type}.php – dapat berupa tipe MIME (Misalnya:  image.phpvideo.phppdf.php). Untuk text/plain, jalur berikut digunakan (secara berurutan):
    1. text-plain.php
    2. plain.php
    3. text.php
  2. attachment.php
  3. single-attachment-{slug}.php – Misalnya, jika slug lampirannya adalah buku, jadi halaman akan terlihat seperti single-attachment-buku.php.
  4. single-attachment.php
  5. single.php
  6. singular.php
  7. index.php

Embeds

Template file embed.php digunakan untuk membuat post yang sedang disematkan. Sejak WordPress versi 4.5 menggunakan jalur berikut:

  1. embed-{post-type}-{post_format}.php – Pertama, WordPress mencari template untuk posting tertentu. 
    Misalnya, jika jenis postingnya adalah post dan memiliki format audio, WordPress akan mencari embed-post-audio.php.
  2. embed-{post-type}.php – Digunakan jika jenis postingnya adalah komputer misalnya, WordPress akan mencari embed-komputer.php.
  3. embed.php – Digunakan jika embed-{post-type}-{post_format}.php dan embed-{post-type}.php tidak ada.
  4. 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' );

Leave a Reply

Your email address will not be published. Required fields are marked *