In questa serie, diamo un'occhiata a quali sono le tassonomie di WordPress, la loro definizione, quando usarle e come incorporarle nei nostri temi. Per essere sicuri che lo stiamo trattando nel modo più dettagliato possibile, ci stiamo avvicinando alla prospettiva di un principiante.
Come menzionato nel primo post della serie, questa serie non è rivolta solo ai principianti. Forse sei uno sviluppatore intermedio di WordPress che sta cercando di iniziare a ramificarsi in nuove API e implementare nuove funzionalità nel tuo lavoro e le tassonomie si adattano esattamente al conto.
In ogni caso, stiamo facendo il possibile per assicurarci di essere il più possibile armato quando si tratta di incorporare tassonomie personalizzate nei progetti WordPress.
Prima di esaminare l'effettiva implementazione di come incorporare le tassonomie, dobbiamo parlare di alcune delle sfide che derivano dall'incorporazione delle tassonomie nel nostro lavoro.
Nello specifico, le tassonomie dovrebbero essere incluse come parte di un tema o in un plugin? Questa domanda è davvero più una questione di "perché dovremmo includere le tassonomie in questo modo?" e "quando dovremmo includere le tassonomie in questo modo?"
E per rispondere a questo, è importante distinguere tra le due opzioni che abbiamo e come vengono archiviati i dati.
Innanzitutto, discutiamo di come le tassonomie sono archiviate internamente in WordPress. Le tassonomie consistono in due componenti: una tassonomia e un termine.
Ad esempio, quando si pensa a Post Formats, la tassonomia è Post formato e i termini sono Standard, video, Immagine, collegamento, e così via. Allo stesso modo, un'altra tassonomia potrebbe essere fotografia e i termini potrebbero essere Film e Digitale.
Nel caso più elementare, la tassonomia di WordPress e l'associazione dei termini predefiniti sono Categoria e Non categorizzato questo è fornito con ogni installazione.
Ora, da qui, è importante capire come questi dati sono gestiti nel database di WordPress. Ci sono tre tabelle di database ognuna delle quali gioca un ruolo nella relazione tra tassonomie e termini associati.
Supponendo che stai lavorando con l'installazione di default (cioè, il prefisso della tabella è wp_
), quindi avrai le seguenti tabelle ognuna con le responsabilità corrispondenti:
wp_terms
rappresenta i termini che appartengono a varie tassonomie. Questo significa che se hai un fotografia tassonomia con due termini di essere Film e Digitale e tu hai una tassonomia chiamata genere con Colore e Bianco e nero essendo termini, quindi Film, Digitale, e Colore risiederanno tutti all'interno del wp_terms
tavolo.wp_term_taxonomy
è una tabella di database che è responsabile per la memorizzazione della descrizione dei termini memorizzati nel file wp_terms
tavolo. Supponi, ad esempio, di avere un Colore termine e il termine è descritto come "Fotografie sviluppate con colori vivaci". Quindi questa descrizione risiederà nel wp_term_taxonomy
tavolo.wp_term_relationships
è discutibilmente quello che ha la più grande curva di apprendimento per i nuovi sviluppatori. Questa tabella mantiene la connessione tra quali tassonomie sono correlate a quali tipi di post. Ad esempio, data un'installazione predefinita, questa tabella memorizzerà la relazione tra il termine della categoria e ogni post a cui è associato.Ora che abbiamo una comprensione di come vengono memorizzati i dati, possiamo discutere quando le tassonomie hanno senso nel contesto dei temi e nel contesto dei plugin.
In generale, una buona regola empirica è di notare che i temi di WordPress dovrebbero essere per la presentazione dei dati e i plugin dovrebbero essere per la funzionalità. In altre parole, i temi forniscono il formato per l'aspetto dei dati e i plug-in estendono le funzionalità principali di WordPress.
C'è anche la nozione di estensioni che sono come plugin specifici per il tema e plugin specifici per plugin, ma questo va oltre lo scopo di questo articolo. Per ora, continuiamo la discussione a livello di temi e plugin.
Diciamo che stai lavorando su un tema e vuoi introdurre una tassonomia personalizzata nel tema. In linea con i nostri esempi utilizzati in tutta la serie, diciamo che vuoi creare un tema del portfolio e vuoi presentarlo un fotografia tassonomia. Dopotutto, il tema consentirà agli utenti di mostrare il proprio lavoro.
Quindi, diciamo che vuoi lavorare sullo stesso tema in un anno o giù di lì ma vuoi eseguire un aggiornamento importante. Forse vuoi generalizzare le tassonomie in modo che le persone non debbano usarle appena per la fotografia. Invece, possono usarlo per brevi poesie o scritti, disegni e così via.
Il problema è che ora hai il fotografia tassonomia codificata nel tema in modo tale che chiunque la utilizzi e la installi ottiene quella particolare tassonomia indipendentemente dal fatto che vogliano mostrare la fotografia o meno.
Certo, è completamente possibile ricostruire il tema da zero e astrarre la funzione di tassonomia in qualcosa di più generale, ma cosa succede agli utenti che vogliono aggiornare? Perdono i dati con cui hanno lavorato mesi o anni? Come verranno organizzati i loro dati? Sono bloccati con la versione attuale del tema con cui stanno lavorando?
Ovviamente, ci sono molte cose da considerare quando si lavora su un tema come questo. Ma è qui che entra in gioco l'importanza della segmentazione della presentazione e della funzionalità.
È completamente possibile creare un tema progettato per mostrare il lavoro in uno stile di portfolio senza dover effettivamente codificare qualsiasi tipo di tassonomia nel tema. Piuttosto, crea la funzionalità in un plug-in, quindi installa il plug-in accanto al tema con cui stai creando. Ottieni quindi i vantaggi della presentazione del portfolio senza che gli utenti si siano bloccati a utilizzare il tema per un periodo di tempo prolungato e potenzialmente perdendo i propri dati durante l'aggiornamento a un nuovo tema.
Per molti dei motivi sopra elencati, è facile capire perché l'implementazione di tassonomie personalizzate nel contesto dei plugin abbia senso.
Questo non vuol dire che non dovrebbe mai essere fatto in temi. Dopo tutto, lì siamo temi di nicchia che hanno come target un pubblico molto specifico e che cercano di fornire una soluzione all-in-one per i propri clienti. Va bene, ma se stai cercando di introdurre questo tipo di funzionalità con il più ampio appeal possibile, allora creare la funzionalità in un plugin ha molto senso.
Non solo ottieni il vantaggio di offrire agli utenti la possibilità di trasferire i loro dati da un tema all'altro senza perdere la categorizzazione dei loro dati, ma dai anche il vantaggio di essere in grado di mantenere l'indipendenza tra la presentazione dei loro dati e lo spazio di archiviazione dei loro dati.
E se sei uno sviluppatore di temi, puoi comunque lavorare per creare temi progettati specificamente attorno al plugin. Forse vorresti offrire un tema per i fotografi, uno per gli scrittori e uno per gli artisti. Con questa strategia, sei ancora in grado di catturare un certo tipo di mercato per tutto il tempo rendendo il tuo plugin compatibile con le varianti del tuo lavoro, liberandoti per lavorare su temi diversi e dando ai tuoi clienti la possibilità di spostarti tra i temi tutto mentre ancora usi i tuoi prodotti.
Poiché abbiamo esaminato il modo in cui WordPress gestisce le tassonomie all'interno del database, e abbiamo esaminato alcune ragioni per cui temi e plug-in dovrebbero funzionare insieme per offrire funzionalità specifiche, vedremo come possiamo crea il nostro plugin che implementa la funzionalità di tassonomia personalizzata che abbiamo utilizzato come dati di esempio in questa serie.
Nel frattempo, sentiti libero di lasciare commenti, domande o commenti generali nel campo dei commenti qui sotto.