Come fare in modo che get_template_part controlli sempre prima il tema child?
Come posso forzare WordPress a controllare sempre prima la cartella del tema child quando esegue get_template_part
?
Esempio: il tema child carica get_template_part('content', 'inventory')
in single.php
. Poiché tutti i temi child (e ce ne sono molti) condividono lo stesso template base per l'inventario, il file content-inventory.php
si trova nel tema genitore. Fin qui tutto bene.
Vorrei aggiungere una piccola sezione al suddetto template dell'inventario che sarà unica per ogni tema child. Aggiungendo get_template_part('content', 'inventory-special')
in content-inventory.php
non controllerà prima la directory del tema child.

Funziona così per impostazione predefinita. La funzione get_template_part()
utilizza locate_template()
che scorre i file dei template in ordine di specificità e percorso del tema genitore/figlio.
Quindi, se il tuo Child Theme include un file content-inventory.php
, allora get_template_part()
lo includerà; in caso contrario, cercherà content-inventory.php
nel tema genitore. Se non lo trova, cercherà poi content.php
prima nel child e poi nel parent.
MODIFICA:
Provo a interpretare ciò che intendi; per favore chiarisci se ho capito male...
Vuoi includere un nuovo file di template part all'interno di un file template del Parent Theme chiamato content-inventory.php
, giusto?
L'unico modo, per quanto ne sappia, per farlo è copiare content-inventory.php
nel tuo Child Theme, e poi aggiungere la nuova chiamata get_template_part()
dove necessario.
Se un file chiamato content-inventory.php
è presente sia nel Parent che nel Child Theme, allora WordPress utilizzerà sempre la versione del Child Theme, se incluso usando get_template_part()
.

@Kaiser, @Chip Bennett: WP controllerà ovviamente il tema genitore per content-inventory.php
. Il Codex e la semplice esperienza lo rendono chiaro. Tuttavia, se il file cercato (livello 2) si trova nella cartella del tema genitore, WP non ricontrolla il tema child per un get_template_part
contenuto all'interno del file cercato (un include di terzo livello). Per voi ha funzionato diversamente?

get_template_part()
lo fa per impostazione predefinita.
