• Ciao a tutti! Scusate ho cercato un pò dappertutto ma non riesco a risolvere questo problema. Ho attivato un tema child e vorrei modificare un file .php del tema padre contenuto in una sottocartella “inc”. Se inserisco il file php con le modifiche nella cartella child il file non viene caricato (nemmeno ricostruendo le sottocartelle)

    Qualcuno saprebbe consigliarmi su come fare?

    grazie!

Stai visualizzando 5 risposte - dal 1 al 5 (di 5 totali)
  • Moderatore Gloria Liuni

    (@glorialchemica)

    Ciao @mpd01,
    se il file è dentro una cartella inc è possibile che sia richiamato in uno dei template file della root principale del tema padre.

    Se così è, a questo punto l’url dell’import non è più valido.

    Inserisci nel tuo Child anche il file che richiama l’inc, rispettando la gerarchia

    Spero di essermi spiegata 🙂
    Facci sapere

    Chi ha creato la discussione mpd01

    (@mpd01)

    ciao, si in effetti il file è richiamato in functions.php con “require ‘inc/file.php’;”.

    Ho inserito la stessa require in functions.php del tema child e ricostruito la cartella inc con all’interno il file php che ho modificato. Ma niente..continua a caricare l’originale

    Ho provato a gestire il tema child anche con il plugin “Child Theme Configurator” nel dubbio di aver fatto qualche errore, ma la situazione non migliora

    Moderatore Rosetta Facciolini

    (@ramthas)

    Web Manager

    Ciao @mpd01
    che tema grafico stai usando?

    Chi ha creato la discussione mpd01

    (@mpd01)

    Non mi ero reso conto che il file functions.php del tema child viene letto per primo. Posso fare tutte le modifiche che voglio ma se poi viene letto quello del tema principale si ricaricano anche i file php originali..
    L’unica alternativa che ho trovato è inserire “require get_stylesheet_directory() . ‘/inc/file.php’;” al posto di “require ‘/inc/file.php’;” nel file functions.php del tema padre, per fargli leggere la cartella “inc” nel tema child.
    Così però si perde l’utilità del tema child…con un update dovrò riscrivere nuovamente la modifica in functions

    Ciao @mpd01,
    se le funzionalità del tema parent che vuoi modificare sono contenute dentro delle funzioni hook o filtri puoi modificarle inserendo nel tuo tema child delle funzioni hook o filtri che vengano eseguite DOPO quelle del parent. Per fare questo devi giocare sul parametro $priority delle funzioni add_action() e add_filter(). Ecco i link alla documentazione delle funzioni:
    https://developer.wordpress.org/reference/functions/add_action/
    https://developer.wordpress.org/reference/functions/add_filter/

    Oppure puoi rimuovere quelle del parent tramite le funzioni remove_action() e remove_filter() , però devi eseguire queste funzioni agganciandoti ad un hook che venga eseguito DOPO quello delle analoghe funzioni nel parent theme.

    Va detto però che non è detto che queste tecniche nel tuo caso funzionino, dipende da come è scritto e da cosa fa il codice del parent theme che vuoi modificare, quindi va valutato caso per caso.

    L’argomento è tecnico e complesso e quindi è impossibile esaurirlo nello spazio di una risposta, ho cercato di darti qualche spunto che potrai approfondire per verificare se nel tuo caso sia applicabile o meno.

    Spero possa esserti utile.

    Giancarlo

    • Questa risposta è stata modificata 7 anni, 4 mesi fa da Giancarlo Mosso. Motivo: correzioni ortografiche e formattazione
Stai visualizzando 5 risposte - dal 1 al 5 (di 5 totali)
  • Il topic ‘Sovrascrivere file php con tema child’ è chiuso a nuove risposte.