X

Gli shortcode non dovrebbero mai essere inclusi nei temi. Punto.

ThemeForest ha recentemente aggiornato i propri requisiti di invio per i temi WordPress per essere più rigorosi e più in linea con le migliori pratiche di sviluppo dei temi WordPress.

Le linee guida richiedono l'uso di diverse funzionalità principali di WordPress, hook di temi standard e vietano funzioni PHP (come base64 e fopen) che in realtà non avrebbero mai dovuto avere posto in un tema WordPress fin dall'inizio.

Fondamentalmente, quasi la politica di revisione dei temi di WordPress.org, con qualche piccola differenza.

Nel complesso, è un passo nella giusta direzione e si muove per promuovere le migliori pratiche su uno dei marketplace di temi WordPress più popolari in rete. C'è solo un problema...

Shortcode ammissibili

Una cosa che in particolare ha attirato la mia attenzione, tuttavia, è stato come veniva permessa una certa funzionalità di shortcode "ammissibile" (cioè, includendoli direttamente tramite il file functions.php del tema). Quelli elencati come "ammissibili" includevano i seguenti:

  • pulsanti
  • tabelle prezzi
  • contenitori di immagini
  • dropcap
  • liste

Gli shortcode inammissibili includono: mappe, accordion e toggle, contenuti in box, colonne, moduli di contatto, grafici.

Il problema degli shortcode nei temi

Non posso davvero dirlo meglio di quanto abbia già fatto Justin Tadlock. Uno dei problemi più evidenti è che, quando un utente cambia tema, gli shortcode non verranno più analizzati.

Supponiamo che il tema "Super Fantastico" avesse una funzionalità di shortcode che producesse un grande pulsante verde con un link quando si digitava qualcosa come [button url="http://example.com"]Grande Pulsante Verde[/button].

Grande Pulsante Verde

Quando si passa a un altro tema (ammettiamolo, le persone si annoiano facilmente dei temi), non c'è più il grande pulsante verde. Invece, si vede lo shortcode non analizzato nel post come se fosse qualsiasi altro contenuto, in questo modo:

[button url="http://example.com"]Grande Pulsante Verde[/button]

Sembra brutto, confuso e fuori luogo, ed è una seccatura per l'utente dover tornare indietro e rimuoverli/sostituirli tutti.

L'altro problema degli shortcode nei temi

Qualcosa che Tadlock ha trattato nel suo articolo "Dealing with shortcode madness" è che molti shortcode sono così semplici e simili all'HTML, che potrebbe persino essere meglio istruire gli utenti a scrivere un po' di (*orrore*) vero codice HTML.

Lo stesso shortcode [button url="http://example.com"]Testo del pulsante[/button] nel mio esempio sopra potrebbe essere facilmente riscritto come qualcosa del tipo:

Testo del pulsante qui

Anche se potrebbe non esserci codice CSS che stilizza il selettore .button in un nuovo tema, almeno verrà visualizzato un normale link. Il che è un grande miglioramento rispetto a uno shortcode [button] non analizzato che appare nel contenuto di un post.

Inoltre, credo che ogni utente WordPress dovrebbe avere almeno una conoscenza di base del codice HTML. Insegnando loro, anche a piccole dosi (come creare un link), aiuterà. Se riescono a capire uno shortcode, non ci vorrà molto di più per far loro capire l'HTML di base.

Ma agli utenti non importa!

Un argomento comune che vedo a difesa di ogni sorta di cattive pratiche quando si tratta di sviluppo di temi è che agli utenti semplicemente non importa. Voglio dire, forse non vorranno mai aggiornare il loro tema, nel qual caso, questo problema degli shortcode sarebbe irrilevante.

Il problema è che alcuni utenti inevitabilmente vorranno cambiare tema un giorno. Alcuni utenti vorranno installare un plugin che potrebbe entrare in conflitto con altro codice mal concepito in un tema.

Quindi, probabilmente si preoccuperanno, e probabilmente si chiederanno se il tema che hanno acquistato con centinaia di shortcode integrati e altre caratteristiche superflue sia stato davvero la pena.

Il modo giusto di includere gli shortcode

Mettilo in un plugin. Un plugin davvero semplice. Non ha bisogno di un pannello di opzioni separato. Basta letteralmente copiare e incollare quello che stavi per includere tramite il file functions.php del tuo tema, e metterlo invece in un plugin.

Potrebbe persino essere raggruppato con qualcosa come TGM Plugin Activation per renderlo obbligatorio all'attivazione del tema. O no. Un tema è ancora un tema senza shortcode.

In questo modo, se l'utente cambia tema, gli shortcode funzioneranno ancora, perché quella funzionalità è gestita dal plugin che è ancora attivo.

Forse il plugin potrebbe anche accodare gli stili per gli shortcode. In questo modo, i grandi pulsanti verdi che hai incluso con lo shortcode [button] saranno ancora grandi pulsanti verdi, indipendentemente dal tema utilizzato.

Perché ThemeForest ha permesso shortcode "ammissibili"?

È difficile dire quale sia stata esattamente la logica dietro questa decisione. Japh Thomson, un evangelista di WordPress presso Envato (la società madre di ThemeForest) ha detto questo a riguardo in un commento su WPMU.org:

La funzionalità complessa degli shortcode dovrebbe davvero risiedere in un plugin, non in un tema. Ha anche senso se si considera che la maggior parte dei nostri autori ha più temi.

Ovviamente, ha capito. Quindi è un mistero per me perché ci dovrebbero essere shortcode "ammissibili". E sì, mi rendo conto che ha usato la parola "complesso" nella citazione sopra, e gli shortcode ammissibili tendono ad essere quelli piuttosto semplici (dropcap, elenchi, ecc.).

Per quanto semplice possa essere uno shortcode, i problemi che ho delineato sopra esisteranno ancora. ThemeForest si è dimostrato reattivo al feedback della community, quindi è possibile che questa regola venga modificata in futuro.

Conclusione

Mi rendo conto che questo post sembra un po' pignolo, e queste nuove linee guida sono sicuramente un enorme passo nella giusta direzione. Ma non c'è davvero motivo per cui uno shortcode debba essere permesso in un tema, semplice o meno.

Allerta spoiler: Non ho ricevuto risposte a quel tweet con un esempio reale di uno shortcode che dovesse assolutamente essere incluso in un tema rilasciato pubblicamente.

Questo perché non è affatto facile per un utente tornare indietro e sostituire centinaia di shortcode di pulsanti dopo essere passato a un tema che non ha lo stesso supporto di shortcode.

Commenti   Lascia una risposta

  1. Grazie mille per questo post, ho appena acquistato un tema ThemeForest e sto avendo lo stesso problema! Quando abbiamo caricato il tema, le pagine dicono che lo shortcode non è compatibile... cosa fare ora per renderlo compatibile? Grazie!

  2. Sebbene sia d'accordo che gli shortcode dovrebbero risiedere in un plugin invece che in un tema, il codice non analizzato apparirà comunque quando il plugin viene disabilitato o sostituito da un altro plugin di shortcode. In entrambi i casi può essere un problema per la persona che esegue il cambio.

    Imparare l'HTML di base sembra la cosa migliore.

  3. Sono totalmente d'accordo su questo. I temi dovrebbero gestire layout e stili. Qualsiasi cosa che aggiunga funzionalità extra deve andare in un plugin.

  4. Ho la stessa posizione sugli shortcode, ma posso capire il ragionamento per cui alcuni temi li includono per gli utenti meno esperti di tecnologia per aggiungere facilmente funzionalità e, a loro volta, aiutano a vendere più temi degli sviluppatori.

  5. Assolutamente.

    Sarebbe anche bello se ci fosse una sorta di degradazione elegante per gli shortcode che non sono più attivi.

  6. Jens Kilgenstein 22 luglio 2013 alle 08:32

    Pertanto, possibili problemi possono essere evitati con funzioni che potrebbero essere aggiunte in futuro in temi diversi. Le questioni di manutenzione sono importanti argomenti di acquisto – almeno per me!

  7. Sono completamente d'accordo con te. Pochissime persone rimangono con un tema per sempre, a meno che non sia completamente personalizzato (e quindi non si ha il problema di Themeforest) e gli shortcode sono un problema da gestire. Ho scoperto di recente questo problema quando ho iniziato a passare da un tema Theme Junkie a un tema StudioPress/Genesis. Ora ho messo in pausa il cambio, nonostante averci già speso 80 dollari, perché c'è troppo da cambiare anche sul mio nuovo sito.

  8. Ciao Leland, ottimo post, grazie per i tuoi pensieri!

    Rilasceremo a breve un aggiornamento a questi requisiti, basato sul feedback dei nostri autori, e spero che sarete soddisfatti di alcune delle modifiche che abbiamo apportato (in particolare in relazione agli shortcode) 🙂

  9. Andrés Vilarreal 14 luglio 2013 alle 10:39

    Penso che non sia solo un problema di compatibilità con altri temi, ma anche un problema relativo ai contenuti. Uno shortcode dovrebbe essere solo un aiuto per elaborare il contenuto, e i temi dovrebbero solo visualizzare il contenuto pre-elaborato, non elaborare il contenuto da soli. Quando i temi elaborano gli shortcode da soli, trattano quel pezzo di testo (o almeno così sembra fare lo sviluppatore) come una chiamata a un elemento visivo, non a uno funzionale (quale è realmente), come se mancasse la comprensione di cosa serve un tema. Questa pratica mostra una mancanza di chiarezza su cosa siano contenuto, funzionalità e visualizzazione, e su come tali elementi debbano essere gestiti (cioè, il contenuto dovrebbe essere memorizzato nel database, la funzionalità dovrebbe essere gestita tramite il core di WP e i plugin, e la visualizzazione tramite i temi; solo come esempio molto basilare). Non è necessario essere esperti di contenuti, programmatori esperti o grandi designer per conoscere queste cose, basta un po' di attenzione e un'attenta riflessione su ciò che offriamo ai nostri utenti e su quanto sarà facile o difficile per loro utilizzare i nostri prodotti. Penso che vada bene se non si conoscono le differenze ma si è disposti a imparare e migliorare, ma, d'altra parte, conoscere e tenere a mente tutte queste cose e offrire comunque shortcode (e qualsiasi altra cosa relativa alla funzionalità) nei temi, mi sembra una pratica sleale che rende i vostri utenti prigionieri del vostro prodotto. So che a volte il confine tra visualizzazione e funzionalità è davvero sottile, ma nella maggior parte dei casi la differenza è indiscutibile.

    Scusa per la lunga risposta, questo è un argomento che mi interessa molto. Ottimo post 🙂

    1. Ciao Andrés, non c'è bisogno di scusarsi per la lunga risposta, hai sollevato ottimi punti!

  10. Grazie per questo... ho problemi continui con gli shortcode nei temi che ho acquistato. E quando li ri-tematizzo, ho codice legacy ovunque che deve essere sostituito.

    1. Peter, questo è un esempio perfetto del problema degli shortcode nei temi.

      Diventa ancora peggio quando altre funzionalità non presentazionali sono incluse in un tema, forse qualcosa di cui parlare in un post futuro.

Aggiungi un commento

Siamo lieti che tu abbia scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra normativa sulla privacy e tutti i link sono nofollow. NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.

Checklist per il lancio di WordPress

La Guida Definitiva per il Lancio di WordPress

Abbiamo raccolto tutti gli elementi essenziali della checklist per il lancio del tuo prossimo sito web WordPress in un comodo ebook.
Sì, Inviami l'eBook Gratuito!