Cum să faci ca get_template_part să verifice întotdeauna mai întâi tema copil?
Cum pot forța WordPress să verifice întotdeauna mai întâi directorul temei copil când rulează get_template_part?
Exemplu: tema copil încarcă get_template_part('content', 'inventory') în single.php. Deoarece toate temele copil (și sunt multe) partajează același șablon comun de inventar, fișierul content-inventory.php se află în tema părinte. Până aici totul e bine.
Aș dori să adaug o mică secțiune la șablonul de inventar menționat care va fi unică pentru fiecare temă copil. Adăugarea get_template_part('content', 'inventory-special') în content-inventory.php nu va verifica mai întâi directorul temei copil.
Funcționează asta în mod implicit. Funcția get_template_part() utilizează locate_template() care parcurge în cascadă fișierele de șablon în ordinea specificității și a căii fișierului de stil (stylesheetpath/templatepath).
Deci, dacă Tema Copil include un content-inventory.php, atunci get_template_part() îl va include; dacă nu, va căuta content-inventory.php în Tema Părinte. Dacă nu îl găsește, va căuta apoi content.php mai întâi în copil, apoi în părinte.
EDITARE:
Încerc să înțeleg ce vrei să spui; te rog să clarifici dacă am înțeles greșit...
Vrei să incluzi un nou fișier parte de șablon în interiorul unui fișier de șablon din Tema Părinte numit content-inventory.php, corect?
Singura modalitate, după câte știu, prin care poți face asta este să copiezi content-inventory.php în Tema ta Copil, și apoi să adaugi noul apel get_template_part() unde este nevoie.
Dacă un fișier numit content-inventory.php este inclus atât în Tema Părinte cât și în Tema Copil, atunci WordPress va folosi întotdeauna versiunea din Tema Copil, dacă este inclus folosind get_template_part().
@Kaiser, @Chip Bennett: WP va verifica evident tema părinte pentru content-inventory.php. Codex-ul și experiența simplă o fac clar. Totuși, dacă fișierul căutat (nivelul 2) se află în folderul temei părinte, WP nu verifică din nou tema copil pentru un get_template_part conținut în fișierul căutat (un include de nivelul trei). A funcționat diferit pentru voi?
MTT
get_template_part() face acest lucru implicit.