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?
MTT
get_template_part() lo fa per impostazione predefinita.