Hierarki Templat: bingung dengan index.php, front-page.php, home.php

36

Saya benar-benar bingung dengan index.php, home.phpdan front-page.php. Dalam banyak kasus meskipun saya punya index.php, saya menimpanya front-page.php. Namun baru-baru ini, saya menjadi sadar home.php.

  • Apa perbedaan antara home.phpdan index.php?
  • Apa kondisi ideal untuk digunakan home.phpdaripada index.php?
  • Apa kondisi ideal untuk digunakan front-page.php?
  • Ketika saya menggunakan front-page.phptugas spesifik apa yang index.phpsedang saya lakukan?

Saya sudah membaca Templat Hierarki di Codex. Tolong jangan gabungkan pertanyaan saya dengan Halaman Template, saya mengerti mereka, alHamduLILLAH.

Mayeenul Islam
sumber
1
Got @rarst dengan ini: rarst.net/wordpress/front-page-logic . Dapat membantu anda
Mayeenul Islam

Jawaban:

34

Logika halaman depan adalah salah satu fitur yang paling membingungkan di WordPress dan sangat sulit untuk dijelaskan dan diringkas. Seperti yang disebutkan dalam komentar saat kembali, saya membakar jumlah waktu yang tidak suci untuk mengumpulkan lembar contekan logika halaman depan saya untuk itu.

Tetapi karena ini adalah utas populer, izinkan saya mencoba menjawab pertanyaan-pertanyaan spesifik yang Anda miliki.

Apa perbedaan antara home.phpdan index.php?

home.phpadalah templat untuk indeks posting (arsip jenis posting asli, yang merupakan kasus khusus di WP). WP akan berusaha mencarinya untuk indeks posting, apakah itu ditampilkan di root situs atau di halaman posting khusus.

index.phpadalah catch – all templat. Ini adalah pilihan terakhir di semua cabang hierarki templat dan akan dipilih bila tidak ada yang cocok, untuk arsip dan tampilan tunggal.

Hanya indeks posting yang dapat digunakan home.php, tetapi semua konteks lain mungkin dan akan menggunakan index.php.

Apa kondisi ideal untuk digunakan home.phpdaripadaindex.php

Anda gunakan home.phpuntuk menyesuaikan indeks posting.

Anda menggunakan index.phpuntuk menyediakan template paling umum dalam tema Anda, cocok untuk tampilan apa pun.

Beberapa tema memilih untuk mengosongkan index.phpdan memastikan mereka memiliki templat yang lebih spesifik untuk semua kasus yang mungkin, sehingga tidak perlu digunakan.

Apa kondisi ideal untuk digunakan front-page.php?

front-page.php digunakan untuk indeks posting di halaman depan root atau statis, jika diaktifkan.

Ini adalah template prioritas tinggi, jadi jika tema memilikinya, Anda tidak dapat memilih template sewenang-wenang untuk halaman depan statis. Untuk alasan ini hampir tidak pernah dimasukkan dalam tema yang dirilis untuk umum (yang benar).

Penggunaan terbaik untuk itu adalah dalam proyek-proyek swasta, karena lebih mudah untuk mengkonfigurasi daripada templat halaman.

Ketika saya menggunakan front-page.phptugas spesifik apa yang index.phpsedang saya lakukan?

index.phpadalah masih menangkap semua template untuk semua kasus lainnya.

Jika Anda menggunakan halaman depan statis (yang front-page.phpakan berlaku), maka halaman posting Anda akan mencoba untuk menggunakan home.phpdan kemudian index.php.

Jarang
sumber
28

The front-page.phpberkas adalah halaman depan situs Template. Itu akan selalu digunakan di halaman depan situs Anda, terlepas dari apakah get_option( 'show_on_front' )diatur ke pageatau posts.

File home.phptemplate adalah template indeks posting blog . Itu akan selalu digunakan untuk menampilkan indeks posting blog Anda, terlepas dari apakah indeks posting blog ditampilkan di halaman depan situs, atau pada halaman yang berbeda.

Dalam hal keduanya front-page.phpdan home.hppada, dan get_option( 'show_on_front' )diatur ke posts(yaitu, halaman depan situs menampilkan indeks posting blog), front-page.phpfile akan diutamakan di atas home.phpfile.

The index.phpberkas adalah fallback template default untuk semua konteks dalam Template Hierarchy . Ini hanya pernah digunakan jika file template yang lebih spesifik tidak ada untuk konteks saat ini.

Hirarki templat untuk halaman depan situs adalah:

  • front-page.php
  • Jika 'page' == get_option( 'show_on_front' ): hierarki halaman
  • Jika 'posts' == get_option( 'show_on_front' ): posting blog hierarki indeks

Hirarki templat untuk indeks posting blog adalah:

  • home.php
  • index.php

Hirarki templat untuk halaman adalah:

  • Templat halaman khusus
  • page-{slug}.php
  • page-{id}.php
  • page.php
  • index.php
Chip Bennett
sumber
Jadi, jika saya mendapatkan ini dengan benar, tidak mungkin menggunakan my-template-1template ketika halaman depan diatur ke posting terbaru dan digunakan my-template-2ketika bagian depan diatur ke halaman statis (tanpa coding)?
Jack Johansson
18

Semua ini berasal dari pembacaan menyeluruh Hirarki Templat .

home.php digunakan jika:

  • Halaman depan situs Anda diatur untuk menampilkan daftar posting, atau
    • Halaman depan statis diatur , dan
    • Pengunjung pergi ke halaman yang telah Anda tetapkan sebagai "daftar posting" Anda (mis., http://example.com/blog/)
  • Dan temanya memiliki home.phpfile

Jika kondisi terakhir tidak terpenuhi - yaitu, tidak ada home.phpfile dalam tema - maka index.phpakan dimuat.

front-page.php akan digunakan jika:

  • Halaman depan statis diatur , dan
  • Pengunjung pergi ke halaman yang telah Anda tetapkan sebagai "halaman rumah statis" Anda (yaitu, http://example.com/), dan
  • Tema memiliki front-page.phpfile

Jika kondisi terakhir tidak terpenuhi - yaitu, tidak ada front-page.phpfile dalam tema - maka index.phpakan dimuat.

Singkatnya

Jika Anda ingin menyesuaikan daftar posting Anda, gunakan home.php.
Jika Anda ingin menyesuaikan beranda statis Anda, gunakan front-page.php.

Pat J
sumber
2
home.phpakan digunakan untuk indeks posting blog, terlepas dari lokasi. Jika halaman depan diatur untuk menampilkan indeks posting blog, maka home.phpakan digunakan (jika front-page.phptidak ada).
Chip Bennett
10

Pendeknya:

  • index.php adalah templat fallback saja, jika tidak ada templat yang sesuai ditemukan
  • home.php digunakan untuk blog (daftar posting terbaru)
  • front-page.php digunakan untuk halaman arahan

index.phpTemplate universal

File index.phptemplate adalah template fallback. Ini digunakan sebagai upaya terakhir ketika tidak ada template lain yang lebih sesuai tersedia. Misalnya, jika Anda tidak memiliki front-page.phpatau home.phpmaka index.phpakan digunakan. Ini juga berlaku untuk hilang archive.phpatau single.phpdan seterusnya.

Tentang front-page.phpVShome.php

Sekarang perbedaan antara front-page.phpdan home.phptemplate adalah yang front-page.phpdigunakan, seperti namanya, sebagai halaman depan utama situs, sementara home.phpdimaksudkan untuk menjadi rumah dari bagian Blog .

Template apa yang akan digunakan untuk halaman arahan situs saya?

The front-page.phpTemplate, jika ada, akan digunakan untuk halaman depan utama situs (misalnya http://www.example.com/). Jika tidak ada, maka home.phpakan digunakan sebagai gantinya. Jika kedua front-page.phpdan home.phptemplate yang file yang hilang maka index.phpcadangan template yang akan digunakan.

Template apa yang akan digunakan untuk halaman blog saya?

WordPress memungkinkan Anda untuk memiliki halaman "Blog" (yang akan mencantumkan posting terbaru) pada halaman yang berbeda dari halaman pendaratan (misalnya http://www.example.com/blog/). Jadi jika ini yang terjadi di situs Anda, maka halaman Blog akan selalu menggunakan home.phptemplat. Jika home.phptidak ada maka index.phptemplate fallback akan digunakan.

Bagaimana cara mengkonfigurasi halaman arahan dan halaman blog?

Untuk mengonfigurasi konten apa yang ditampilkan di halaman depan Anda, buka Admin WordPress , di bawah Alat> Membaca , di sana Anda dapat mengonfigurasi " Tampilan halaman depan " untuk menampilkan halaman statis, atau posting terbaru Anda.

Jika Anda memilih untuk menampilkan halaman statis di halaman depan, maka Anda juga memiliki kemungkinan untuk mengatur halaman mana yang akan digunakan sebagai pengganti untuk halaman Blog (yang akan menggunakan home.phptemplate):

masukkan deskripsi gambar di sini

tanya 12 Februari '12
sumber
3

diambil dari hierarki template Wordpress

Tampilan Halaman Beranda

Secara default, WordPress menetapkan beranda situs Anda untuk menampilkan posting blog terbaru Anda. Halaman ini disebut indeks posting blog. Anda juga dapat mengatur posting blog Anda untuk ditampilkan pada halaman statis terpisah. File template home.php digunakan untuk membuat indeks posting blog, apakah itu digunakan sebagai halaman depan atau pada halaman statis terpisah. Jika home.php tidak ada, WordPress akan menggunakan index.php.

  1. home.php
  2. index.php

Catatan: Jika front-page.php ada, itu akan menggantikan template home.php.

Tampilan Halaman Depan

File template front-page.php digunakan untuk membuat halaman depan situs Anda, apakah halaman depan menampilkan indeks posting blog (disebutkan di atas) atau halaman statis. Templat halaman depan lebih diutamakan daripada templat indeks posting blog (home.php). Jika file front-page.php tidak ada, WordPress akan menggunakan file home.php atau page.php tergantung pada pengaturan di Pengaturan → Membaca. Jika tidak ada file-file itu ada, itu akan menggunakan file index.php.

1. front-page.php - Digunakan untuk "posting terbaru Anda" atau "halaman statis" sebagaimana diatur di halaman depan menampilkan bagian Pengaturan → Membaca.

2. home.php - Jika WordPress tidak dapat menemukan front-page.php dan "posting terbaru Anda" diatur di bagian tampilan halaman depan, itu akan mencari home.php. Selain itu, WordPress akan mencari file ini ketika halaman posting diatur di bagian tampilan halaman depan.

3. page.php - Ketika "halaman depan" diatur di halaman depan menampilkan bagian.

4. index.php - Ketika "posting terbaru Anda" diatur di halaman depan menampilkan bagian tetapi home.php tidak ada atau ketika halaman depan diatur tetapi page.php tidak ada.

Seperti yang Anda lihat, ada banyak aturan untuk jalur apa yang diambil WordPress. Menggunakan grafik di atas adalah cara terbaik untuk menentukan apa yang akan ditampilkan WordPress.

Bagan hierarki template: Hirarki templat Wordpress

samix73
sumber
2

Saya memutuskan untuk menguji templat mana yang digunakan untuk masing-masing halaman berikut ketika berbagai opsi tampilan halaman depan diatur.

  • contoh.net
  • example.net/home/
  • example.net/blog/

Hasilnya cukup panjang, tetapi bisa digunakan sebagai referensi atau cheat-sheet.

Halaman depan ditampilkan

Sumber: Apa perbedaan templat home-page.php dan home.php di WordPress?

Catatan untuk editor: Saya mencoba untuk menyalin dan menempelkan tabel di sini tetapi format markdown diperlukan daripada HTML. Silakan konversi ke penurunan harga jika Anda bisa.

Henryrywright
sumber