Bagaimana membuat get_template_part selalu memeriksa tema anak terlebih dahulu?

8

Bagaimana saya bisa memaksa WP untuk selalu memeriksa folder tema anak terlebih dahulu saat menjalankan get_template_part?

Contoh: tema anak dimuat get_template_part('content', 'inventory')di single.php. Karena semua tema anak (dan ada banyak) berbagi basis templat inventaris bersama yang sama, file content-inventory.phptersebut ada dalam tema induk. Sejauh ini bagus.

Saya ingin menambahkan bagian kecil ke templat inventaris yang akan unik untuk setiap tema anak. Menambahkan get_template_part('content', 'inventory-special')ke content-inventory.phptidak akan memeriksa direktori tema anak terlebih dahulu.

m-torin
sumber
3
Kepada kalian berdua yang memilih saya sebagai jawaban dan tidak berkomentar mengapa, terima kasih untuk apa pun. Bagaimana seseorang bisa memperbaiki diri dengan kritik negatif?
m-torin

Jawaban:

5

Ya, secara default. The get_template_part()penggunaan fungsi locate_template()yang cascades melalui file template di dalam rangka kekhususan dan stylesheetpath / templatepath.

Jadi, jika Tema Anak Anda menyertakan a content-inventory.php, maka get_template_part()akan memasukkannya; jika tidak, maka akan dicari content-inventory.phpdi Theme induk. Jika tidak menemukannya, maka akan dicari content.phpterlebih dahulu pada anak, kemudian pada orang tua.

EDIT:

Cobalah memahami apa yang Anda maksud; tolong jelaskan jika saya salah paham ...

Anda ingin memasukkan file bagian templat baru dalam file templat Tema Induk yang disebut content-inventory.php, kan?

Satu-satunya cara, AFAIK, yang dapat Anda lakukan adalah menyalin content-inventory.phpke Tema Anak Anda , dan kemudian menambahkan get_template_part()panggilan baru di mana diperlukan.

Jika sebuah file bernama content-inventory.phptermasuk dalam kedua Orang Tua dan Theme anak, maka WordPress akan selalu menggunakan Anak Tema versi, jika termasuk menggunakan get_template_part().

Chip Bennett
sumber
@Kaiser, @Chip Bennett: WP jelas akan memeriksa tema induknya content-inventory.php. Codex dan pengalaman sederhana membuatnya menjadi jelas. Namun jika file yang dicari (level 2) ada di folder tema induk, WP tidak memeriksa ulang tema anak untuk yang get_template_partterkandung dalam file yang dicari (termasuk lapis ketiga). Apakah ini bekerja secara berbeda untuk Anda?
m-torin
Saya tidak mengerti pertanyaan / masalah Anda. Untuk nama file templat apa pun yang diberikan, WordPress selalu memeriksa Tema Anak terlebih dahulu . Bisakah Anda menjelaskan apa yang Anda maksud dengan file lapis kedua dan ketiga?
Chip Bennett