Cum să faci ca get_template_part să verifice întotdeauna mai întâi tema copil?

19 iun. 2011, 15:55:34
Vizualizări: 21.2K
Voturi: 9

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.

1
Comentarii

Pentru voi doi care mi-ați dat vot negativ la răspuns și nu ați comentat motivul, mulțumesc pentru nimic. Cum se presupune că cineva se poate îmbunătăți fără critici constructive?

MTT MTT
19 iun. 2011 23:24:06
Toate răspunsurile la întrebare 2
2

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().

19 iun. 2011 16:47:28
Comentarii

@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 MTT
19 iun. 2011 23:17:26

Nu înțeleg întrebarea/problema ta. Pentru orice nume de fișier șablon, WordPress verifică întotdeauna mai întâi Tema Copil. Poți să explici ce înțelegi prin fișiere de nivelul doi și trei?

Chip Bennett Chip Bennett
19 iun. 2011 23:37:31
0

get_template_part() face acest lucru implicit.

19 iun. 2011 16:46:41