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?

get_template_part()
face acest lucru implicit.
