Quanto costa mantenere un sito WordPress
Quando si parla di realizzare un sito WordPress, spesso l'attenzione si concentra sul costo iniziale del progetto. In realtà, una…
Continua a leggere ›
BeTheme è uno dei temi WordPress più potenti e completi in circolazione.
Proprio per questo, viene spesso personalizzato male: codice sparso ovunque, modifiche dirette al tema parent e aggiornamenti rimandati per paura di rovinare il lavoro svolto.
Dopo aver parlato di come rimuovere la licenza BeTheme e di come risolvere alcuni problemi con il Mega Menu, in questo articolo vediamo come mettere le mani su BeTheme senza comprometterne la stabilità e senza rinunciare agli aggiornamenti.
Il child theme è lo strumento principale per personalizzare qualunque tema di WordPress e BeTheme non fa eccezione.
Il problema è che spesso viene creato “per obbligo”, senza una reale strategia, trasformandosi rapidamente in una copia disordinata del tema principale chiamato anche tema padre o parent.
Un child theme ben fatto non serve a duplicare BeTheme, ma a intervenire solo dove necessario, mantenendo il progetto aggiornabile nel tempo.
Se stai modificando file direttamente nel tema parent, devi sapere che al prossimo aggiornamento perderai tutte le modifiche fatte.
Un child theme efficace ha una struttura molto semplice.
Nella maggior parte dei progetti, dentro la cartella o directory “betheme-child” bastano pochi file ben organizzati:
Aggiungere file “preventivamente” è uno degli errori più comuni: ogni file dovrebbe esistere solo se serve davvero.
Il child theme deve contenere solo codice che hai scritto tu o che stai mantenendo attivamente.
Ogni file duplicato inutilmente è un potenziale problema al prossimo aggiornamento.
BeTheme permette di sovrascrivere alcuni template copiandoli nel child theme.
Questa operazione va fatta solo quando:
Regola pratica: se puoi risolvere con un hook o con del CSS, sostituire file PHP è probabilmente eccessivo.
Prima di aggiungere qualsiasi file o codice nel child theme, chiediti:
Se la risposta è “no” anche solo a una di queste domande, fermati e rivedi l’approccio.
Un child theme pulito non è quello che fa tutto, ma quello che fa solo ciò che serve.
Il functions.php del child theme è il punto giusto per:
Esempio corretto di enqueue:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
function mytheme_enqueue_assets() { wp_enqueue_style( 'mytheme-custom-css', get_stylesheet_directory_uri() . '/css/custom.css', array(), '1.0' ); wp_enqueue_script( 'mytheme-custom-js', get_stylesheet_directory_uri() . '/js/custom.js', array('jquery'), '1.0', true ); } add_action('wp_enqueue_scripts', 'mytheme_enqueue_assets'); |
Evita funzioni duplicate del tema parent o hack trovati online senza sapere cosa fanno.
Quando si lavora con BeTheme, una delle decisioni più importanti riguarda come intervenire sul codice.
Spesso si tende a copiare file dal tema parent nel child theme, ma nella maggior parte dei casi esiste una soluzione più pulita e sicura.
La scelta corretta sta quasi sempre tra tre strade: hook, sostituire dei template o semplice CSS. Capire quale usare fa la differenza tra un progetto aggiornabile e uno fragile.
Gli hook sono il modo migliore per personalizzare BeTheme senza modificarne i file originali. Permettono di aggiungere o modificare funzionalità in punti precisi del tema, mantenendo la compatibilità con gli aggiornamenti.
Usa un hook quando:
Esempio semplice:
|
1 2 3 4 5 |
function my_custom_content_before_footer() { if (is_page()) { echo '<div class="mytheme-custom-block">Contenuto personalizzato</div>'; } } add_action('mfn_hook_before_footer', 'my_custom_content_before_footer'); |
In questo modo il contenuto viene aggiunto senza toccare alcun file del tema parent.
Molte personalizzazioni non richiedono PHP o override. Se stai cambiando solo:
Allora il CSS è spesso la soluzione migliore.
Usare un override PHP per una modifica puramente estetica è uno degli errori più comuni e porta solo complessità inutile.
L’override dei template dovrebbe essere considerato solo quando:
In questi casi, copiare il file nel child theme è corretto, ma va fatto con consapevolezza.
Attenzione: ogni override crea un legame diretto con la versione del tema in uso. Dopo un aggiornamento di BeTheme, è sempre necessario verificare che il file sovrascritto non sia cambiato nel parent.
Prima di intervenire, chiediti sempre:
Se puoi usare un hook, usa un hook. Se basta il CSS, usa il CSS. L’override dei template dovrebbe essere l’eccezione, non la regola.
Scegliere la strada giusta fin dall’inizio evita refactor inutili e rende BeTheme molto più gestibile nel tempo.
Uno degli errori più comuni nei progetti basati su BeTheme è la mancanza di isolamento del codice custom.
CSS e JavaScript generici finiscono inevitabilmente per entrare in conflitto con il builder, con i plugin o con aggiornamenti futuri del tema.
Isolare davvero CSS e JS significa scrivere codice che riguarda solo ciò che stai sviluppando, senza dipendere da classi, ID o comportamenti interni di BeTheme.
Classi come .box, .active, .hidden o .content sono una delle principali cause di bug difficili da individuare. Funzionano oggi, ma rischiano di rompersi domani.
Una buona pratica è usare sempre un prefisso dedicato al progetto o alla funzionalità:
|
1 2 3 4 5 6 7 |
.mytheme-feature-box { display: flex; gap: 20px; } .mytheme-feature-box__title { font-weight: 600; } |
In questo modo il CSS resta leggibile, prevedibile e non interferisce con lo stile del tema o del builder.
Evita di scrivere regole che valgono per tutto il sito se servono solo in una sezione specifica. Più il CSS è contestuale, meno effetti collaterali produrrà.
Meglio ancorare gli stili a un wrapper specifico piuttosto che a elementi generici:
|
1 2 3 |
.classe-personalizzata .nome-classe-34w3d54gf { margin-bottom: 30px; } |
Anche per il JavaScript vale la stessa regola: il codice dovrebbe vivere solo dove serve.
Esempio di struttura semplice e sicura:
|
1 2 3 4 5 6 7 8 9 10 11 |
(function () { const featureBoxes = document.querySelectorAll('.mytheme-feature-box'); if (!featureBoxes.length) { return; } featureBoxes.forEach(function (box) { box.addEventListener('click', function () { box.classList.toggle('is-active'); }); }); })(); |
In questo modo lo script non inquina lo scope globale e non genera errori se gli elementi non sono presenti.
Un altro aspetto spesso sottovalutato è il caricamento condizionale degli asset. CSS e JS custom non dovrebbero essere caricati su tutte le pagine se servono solo in contesti specifici.
Usando condizioni in functions.php puoi limitare il caricamento solo dove necessario, migliorando performance e manutenzione.
CSS e JS ben isolati riducono drasticamente bug, conflitti e problemi dopo gli aggiornamenti di BeTheme.
Il problema, nella maggior parte dei casi, non è BeTheme, ma come viene usato.
BeTheme non è un tema “limitante” né un tema che costringe a soluzioni sporche. Al contrario, offre molti strumenti per essere personalizzato in modo corretto, ma solo se viene usato con metodo e consapevolezza.
Un child theme pulito, l’uso intelligente degli hook e l’isolamento di CSS e JavaScript sono ciò che distingue un progetto solido da uno fragile. Non si tratta di scrivere più codice, ma di scrivere codice migliore.
Ogni scorciatoia presa oggi, override inutili, CSS generico, funzioni buttate nel posto sbagliato, si trasforma quasi sempre in un problema domani, soprattutto quando arriva il momento di aggiornare BeTheme o WordPress.
Seguendo un approccio ordinato puoi:
BeTheme funziona al meglio quando viene trattato come una base solida su cui costruire, non come qualcosa da aggirare o forzare. Scegliere hook invece di override, CSS contestuale invece di regole globali e asset caricati solo dove servono fa una differenza enorme nel lungo periodo.
Se lavori spesso con BeTheme, adottare questo metodo non è solo una buona pratica: è un investimento sulla qualità del tuo lavoro e sulla serenità dei prossimi aggiornamenti.