Supporto » Aspetto = Temi » Settings, Customizer e Theme Mod

  • Moderatore Guido Scialfa

    (@wido)


    Ciao a tutti.

    Come da titolo mi piacerebbe avere qualche delucidazione al riguardo dei settings, customizer e theme mod.

    Premesso che li uso da un pò tutti e tre, ma sicuramente fino ad adesso li ho usati nel modo errato.

    Ho letto nel make di wordpress che le settings dovrebbero essere utilizzate nei parent themes mentre i theme mod nei child. Il customizer poi può prelevare da entrambi per offrire un’interfaccia di customizzazione.

    La mia domanda quindi è, di default il customizer use i theme mods, ma posso davvero usare anche le opzioni registrate usando le settings api?

    Un’altra questione è, io di solito uso una classe messa a disposizione da wedevs su github che registra le opzioni basandosi sulle sections. Ovvero, registra le sections come opzioni ed all’interno i valori serializzati chiave > valore per i fields interni a quella sezione.

    È un metodo corretto o crea problemi poi se volessi utilizzare le settings con il customizer? Perchè pensandoci bene forse ogni field delle settings dovrebbe essere una colonna a parte all’interno del database piuttosto che un valore appartenente al gruppo di opzioni.

    Vi ringrazio anticipatamente per il supporto.

Stai visualizzando 4 risposte - dal 1 al 4 (di 4 totali)
  • Ciao @wido,

    veramente una bella domanda e da utente skillato tra l’altro 😉

    Nel mio blog ho trattato diverse volte questo argomento, ma se non sbaglio lasciarti il link è contro le regole quindi ti lascio scoprire il mio profilo.

    Detto questo diciamo che le theme_mod sono molto simili alle classiche opzioni che vengono salvate in wp_options ma sono collegate al tema in uso. Questo vuol dire che al cambiamento del tema queste vengono disattivate; ecco perché sono così utilizzate nelle Theme Customization API.

    Se la libreria a cui fai riferimento è CMB2 (penso proprio che sia così) queste impostazioni sono incredibilmente utili sia per creare delle pagine opzioni per i propri plugin o creare dei CPT avanzati. Però ti sconsiglierei di utilizzare le opzioni quando si tratta di temi…

    In conclusione ti consiglio di usare le esclusivamente le theme_mod con il customizer e utilizzare quest’ultimo per le personalizzazioni che vuoi offrire nei tuoi temi perché è sempre più utilizzato e (sempre nel blog) ti ho presentato una libreria che ti permette di aggiungere anche controlli più avanzati.

    Prossimamente andremo a presentare anche Kirki che presenta un interessante framework per aggiungere personalizzazioni al customizer 😉

    Moderatore Guido Scialfa

    (@wido)

    Ciao @andrea,

    Grazie per la risposta, era esattamente quello che avevo capito allora 😀

    C’e’ da considerare però che ad esempio, le settings blogname e blogdescription sono customizzabili via customizer. Quindi comunque anche se magari non rientra nelle best practices posso utilizzare le settings “options” insieme ai theme_mod?

    La classe che uso per le settings, non è cmb2, mi sono trovato meglio con un’altra creata sempre da loro ma che lavora appositamente sulle settings e basta. Però ho ancora il dubbio.

    In riferimento all’ultima domanda se comunque possibile usare le wp_options via customizer, dovrei registrare le options singolarmente ad esempio:

    – prefix_nome_option
    – prefix_nome_option2

    Quindi come colonne separate nel database oppure è anche lecito salvare una sola opzione che usa il nome della settings section in questo modo?

    – prefix_settings_section_as_option
    – single_option
    – single_option2

    Perchè quella classe che uso fa in quest’ultimo modo ma non vorrei creare problemi con il customizer o eventuali future features di WordPress.

    Ps. Darò sicuramente un occhio al tuo articolo. 🙂

    • Questa risposta è stata modificata 7 anni, 2 mesi fa da Guido Scialfa. Motivo: improvements

    Se per salvare le opzioni con lo stesso nome, intendi dire serializzare le informazioni nel database non ne sono molto sicuro.

    In fin dei conti, quando necessario, uso sempre le funzioni interne di WordPress che in genere sono incaricate proprio di fare questo lavoro e quindi non mi preoccupo molto di questa cosa.

    È una cosa che dobbiamo indagare, ma perché ti serve questa informazione?

    Cmq per salvare le opzioni del customizer nella tabella wp_options devi soltanto modificare il valore di type in option.

    Spero di aver chiarito almeno parte dei tuoi dubbi 🙂

    Moderatore Guido Scialfa

    (@wido)

    Ciao,

    Si intendevo proprio serializzare le opzioni per gruppi.

    Io di solito uso le Settings API, quindi registro la setting, la section ed i fields.

    Ora, uso questa classe https://github.com/tareq1988/wordpress-settings-api-class leggermente modificata. Ma salva un’opzione soltanto che è il nome stesso della section. Poi tutti i fields sono serializzati all’interno dell’opzione.

    Ho chiesto perchè vorrei evitare che un raggruppamento del genere prevenga la possibilità di lavorare con il customizer o eventuali future implementazioni di features.

    Da quello che so ogni setting field dovrebbe essere un’opzione singola, cioè una colonna nella tabella wp_options ? Di default se non ricordo male le Settings API lavorano proprio in questo modo.

    A proposito, Kirki lo sto provando proprio questi giorni e dall’uso di questa lib che mi è venuta in mente la questione.

    • Questa risposta è stata modificata 7 anni, 2 mesi fa da Guido Scialfa.
Stai visualizzando 4 risposte - dal 1 al 4 (di 4 totali)
  • Il topic ‘Settings, Customizer e Theme Mod’ è chiuso a nuove risposte.