design-scuole-wordpress-theme icon indicating copy to clipboard operation
design-scuole-wordpress-theme copied to clipboard

Aggiungere wrapper function_exists nel tema parent (functions.php)

Open eartahhj opened this issue 1 year ago • 0 comments

Prerequisiti

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.

eartahhj avatar Feb 04 '24 11:02 eartahhj