Come fare in modo che get_template_part controlli sempre prima il tema figlio?


8

Come posso forzare WP a controllare sempre prima la cartella del tema figlio durante l'esecuzione get_template_part?

Esempio: i carichi tema bambino get_template_part('content', 'inventory')in single.php. Poiché tutti i temi figlio (e ce ne sono molti) condividono la stessa base di modelli di inventario comune, il file si content-inventory.phptrova nel tema principale. Fin qui tutto bene.

Vorrei aggiungere una piccola sezione al modello di inventario che sarà unico per ogni tema figlio. L'aggiunta get_template_part('content', 'inventory-special')in content-inventory.phpnon controlla prima la directory del tema figlio.


3
A voi due che avete votato in negativo la mia risposta e non avete commentato il perché, grazie per niente. In che modo qualcuno suppone di migliorarsi con le critiche negative?
m-torin,

Risposte:


5

Lo fa, per impostazione predefinita. La get_template_part()funzione utilizza locate_template()che scorre in sequenza attraverso i file modello in ordine di specificità e stylesheetpath / templatepath.

Quindi, se il tuo tema figlio include un content-inventory.php, allora get_template_part()lo includerà; in caso contrario, cercherà content-inventory.phpnel tema principale. Se non lo trova, cercherà content.phpprima nel bambino, poi nel genitore.

MODIFICARE:

Fare una pugnalata per capire cosa intendi; per favore chiarisci se sto fraintendendo ...

Si desidera includere un nuovo file di parti del modello in un file modello Tema principale chiamato content-inventory.php, giusto?

L'unico modo, AFAIK, che puoi fare è quello di copiare content-inventory.phpnel tuo tema figlio , quindi aggiungere la nuova get_template_part()chiamata dove necessario.

Se un file di nome content-inventory.phpè incluso in sia della Capogruppo e il Bambino a tema, quindi WordPress sempre utilizzare il Bambino Tema versione, se inclusi utilizzando get_template_part().


@Kaiser, @Chip Bennett: WP controllerà ovviamente il tema principale content-inventory.php. Il Codice e l'esperienza semplice lo chiariscono. Tuttavia, se il file da ricercare (livello 2) si trova nella cartella del tema principale, WP non ricontrolla il tema figlio per un get_template_partcontenuto all'interno del file da cercare (include un terzo livello). Ha funzionato diversamente per te?
m-torin,

Non capisco la tua domanda / problema. Per ogni dato nome di file modello, WordPress controlla sempre prima il tema figlio . Puoi spiegare cosa intendi per file di secondo e terzo livello?
Chip Bennett,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.