design-scuole-wordpress-theme
design-scuole-wordpress-theme copied to clipboard
Aggiungere wrapper function_exists nel tema parent (functions.php)
Prerequisiti
- [X] Ho già cercato tra le issue la presenza di un problema simile
- [X] Ho letto le linee guida di contribuzione
Proposta
Ciao,
a mio avviso sarebbe utile dichiarare le funzioni del tema parent in un wrapper tramite:
if (!function_exists('...')) { ... }
In questo modo sarà possibile sovrascrivere le stesse funzioni nel tema figlio.
Ad esempio, nel mio caso non riesco a sovrascrivere la breadcrumb perché il tema padre fa un require di un file breadcrumb.php che a sua volta dichiara delle funzioni senza wrapper usando get_template_directory
che richiama il tema padre.
Poiché anche le funzioni che sono definite nei require (es. inc/breadcrumb.php) non sono wrappate, non mi è possibile fare override delle stesse.
Per risolvere in modo "semplice", ho spostato il contenuto di functions.php dal parent al child (quindi il functions.php del parent ora è vuoto) e nel child ho usato:
require get_stylesheet_directory() . '/inc/breadcrumb.php';
perché se uso get_template_directory
mi richiama il file del tema padre.
Altrimenti la possibilità sarebbe di usare solo il tema padre e modificarlo direttamente (senza child) ma mi sembra un approccio errato a lungo termine, preferirei tenere il tema base originale e fare le modifiche solo sul child.
Se avete altre idee migliori sono benvenute.
Motivazione e contesto
Questa modifica aiuterebbe a tenere separati tema parent e child e fare l'override delle funzioni e degli script/stili in modo più funzionale.