Dove inserire i file PHP personalizzati in un child theme?
Sto personalizzando un tema premium di WordPress per adattarlo meglio al mio sito, ma non riesco a capire cosa fare con i file PHP che modifico. Dovrebbero essere inseriti nella root della cartella del child theme? Oppure devono seguire la stessa gerarchia di cartelle del tema originale? Come posso assicurarmi che venga utilizzato il file PHP del child theme invece di quello del tema padre (ad esempio header.php)?

Alcune cose da aggiungere
- Se aggiungi file template nel child theme, essi sostituiranno i file template del tema genitore.
- Il CSS non viene importato automaticamente, quindi devi importarlo manualmente nel file CSS del tuo child theme utilizzando
@import
. Potrebbe essere qualcosa del genere:@import url("../twentyeleven/style.css");
- Il file
functions.php
non viene sostituito, quindi tutte le funzioni del tema genitore rimangono definite e puoi aggiungere nuove funzioni PHP nel filefunctions.php
del child theme. - Se copi e incolli un file PHP dal tema genitore al child theme per modificarlo e vedi qualcosa come
require_once(TEMPLATEPATH.'/includes/a_php_file.php');
, ricorda che la costanteTEMPLATEPATH
punta ancora alla directory del tema genitore. Se devi modificare il filea_php_file.php
, copialo anche nel tuo child theme e utilizza il percorso del foglio di stile del tema per accedere al child theme. Quindi dovrai fare qualcosa del genere:include( get_stylesheet_directory() . '/includes/a_php_file.php');
Come faccio a essere sicuro che venga utilizzato il file del child theme? Se fai tutto correttamente, i template del child theme verranno già utilizzati. Ma se vuoi verificarlo, puoi aggiungere un commento HTML nel file template e controllare il sorgente. A volte lo faccio quando le cose non funzionano come dovrebbero, e aggiungo anche il nome del file PHP al commento HTML così da sapere quale file include/richiede cosa.
Codex:
http://codex.wordpress.org/Function_Reference/get_stylesheet_directory

Per rispondere alle tue domande in ordine sparso:
Qualsiasi file template che includi in un child theme verrà utilizzato automaticamente al posto della versione con lo stesso nome del tema genitore. (Questo non si applica a style.css o functions.php, ma header.php ecc. sono tutti inclusi.)
WP utilizzerà la gerarchia dei template per capire quali template sono necessari in base alla query in questione - se il tema è ben costruito, dovresti poterli mettere nella radice della tua cartella senza replicare la struttura delle directory originale.
MA, se il tema genitore è stato programmato in modi non standard, e in particolare se cerca di includere file direttamente invece di usare le funzioni di wp (come get_header(), get_footer(), get_template_part() ecc.), potresti dover sporcarti un po' più le mani. I temi premium di qualità spesso hanno documentazione su come costruire child theme per i loro sistemi, specialmente se dipendono molto da hook non-wp per fare le cose... ma ovviamente, potresti non sapere finché non inizi a sperimentare quanto sia buona la documentazione del tuo. Buona fortuna!

La funzione WordPress "get_bloginfo" funziona correttamente per me
<?php echo get_bloginfo('template_url').'/db.php';?>
Può essere utilizzata all'interno di codice JavaScript con
url:"<?php echo get_bloginfo('template_url').'/db.php';?>",
funziona nel child theme
