Comprendere e lavorare con i metadati in WordPress

Finora in questa serie, abbiamo esaminato i principali tipi di contenuti in WordPress. Ma per quanto riguarda i dati aggiuntivi su tutto quel contenuto? 

Ecco dove entrano in gioco i metadati.

Come ho spiegato in una parte precedente di questa serie, WordPress ha quattro tipi di contenuto principali che memorizza in quattro tabelle di database:

  • messaggi
  • utenti
  • Commenti
  • link

I primi tre di questi possono anche avere metadati a loro assegnati, e ognuno ha una propria tabella di metadati nel database per archiviare questo.

Che cosa sono i metadati?

I metadati possono essere descritti come dati sui dati. Wikipedia definisce due tipi di metadati:

Metadati strutturali riguarda la progettazione e le specifiche delle strutture di dati ed è più propriamente chiamato "dati sui contenitori di dati"; metadati descrittivi, d'altra parte, riguarda le singole istanze dei dati dell'applicazione, il contenuto dei dati.

Con questa definizione, WordPress utilizza metadati descrittivi. Ciò che definiamo come dati in WordPress e ciò che può essere definito come metadata è un po 'sfocato e non equivale direttamente a ciò che è memorizzato nelle tabelle dei metadati. Per esempio:

  • Per i post, post_type è un esempio di metadati, ma è memorizzato nel file wp_posts tavolo
  • I termini, le categorie e i tag della tassonomia possono anche essere definiti genericamente come metadati, ma questi sono memorizzati interamente separatamente, nelle proprie tabelle di database.
  • I metadati del post come i campi personalizzati e i metadati aggiuntivi aggiunti tramite plugin sono archiviati nel wp_postmeta tavolo, come ci si aspetterebbe.

Quindi è più facile pensare ai metadati in WordPress non secondo la definizione rigorosa del termine, ma come i dati memorizzati nelle tre tabelle di metadati.

Le tabelle dei metadati

WordPress utilizza tre tabelle del database per i metadati:

  • wp_postmeta memorizza i metadati relativi ai post (inclusi allegati, voci di menu di navigazione e revisioni)
  • wp_commentmeta memorizza i metadati sui commenti
  • wp_usermeta memorizza i metadati sugli utenti

L'unico tipo di oggetto in WordPress che non ha metadati è il collegamento.

Le tabelle dei metadati sono quasi identiche in quanto hanno solo quattro campi:

  • ID è l'ID del post, utente o commento a cui si riferiscono i metadati
  • Il meta ID si riferisce all'ID del record di metadati
  • La chiave è la meta chiave (che è spesso duplicata tra diversi record)
  • Il valore è il valore meta (che tende ad essere unico)

WordPress può usare questa struttura per memorizzare grandi quantità di metadati usando una struttura semplice. Ciò significa che le funzioni che usi per visualizzare e interrogare i metadati per post, utenti e commenti sono molto simili.

Metadati memorizzati da WordPress

I metadati archiviati in una singola installazione di WordPress varieranno da quelli archiviati in un'altra installazione, poiché plugin e temi possono aggiungere i propri metadati e, in alcuni siti, sarà necessario definire metadati specifici mentre in altri non sarà possibile. 

Ma diamo un'occhiata ad alcuni dei più comuni tipi di metadati:

  • Campi personalizzati. Questi si applicano ai post così sono memorizzati nel wp_postmeta tavolo. È possibile aggiungerli utilizzando l'interfaccia standard Campi personalizzati o creando i propri metabox nelle schermate di modifica dei post. Questo può essere particolarmente utile quando si desidera che gli utenti siano in grado di aggiungere metadati a un tipo di post specifico e si desidera rendere l'interfaccia più user-friendly possibile.
  • Metadati dell'utente. Il wp_usermeta la tabella memorizza i metadati relativi alla maggior parte degli utenti, come ruoli, funzionalità, impostazioni del dashboard e persino nomi e cognomi.
  • Metadati aggiunti da plugin e temi. I plugin con funzionalità di commento come Akismet aggiungeranno i metadati al wp_commentmeta tabella, mentre i plug-in che consentono di aggiungere metadati ai post, come i plugin SEO, aggiungeranno record al wp_postmeta tavolo. Potresti teoricamente aggiungere metadati tramite il tema, ma ha più senso farlo in un plug-in, in quanto è generalmente correlato alla funzionalità e non viene visualizzato.

Ovviamente l'elenco non è limitato a questi tipi. In effetti, tutti i dati relativi a post, commenti o utenti che non possono essere memorizzati nelle loro tabelle del database principale verranno archiviati nelle relative tabelle di metadati. 

Se stai aggiungendo un nuovo campo per archiviare i dati, dovresti sempre utilizzare queste tabelle e non le tabelle principali.

Accesso e emissione di metadati

WordPress ha un'API Metadata che usi per aggiungere, modificare, ottenere ed eliminare i metadati. Esiste una gamma di funzioni specifiche per ciascun tipo di metadati che utilizzi per emettere i metadati nei tuoi file modello: dovresti usarli al posto di qualsiasi funzione di metadati generica.

Le funzioni dell'API dei metadati per ogni tipo di contenuto sono molto simili e hanno gli stessi parametri:


Aggiunta di metadati Ottenere i metadati Aggiornamento dei metadati Eliminazione dei metadati
Messaggi add_post_meta () get_post_meta () update_post_meta () delete_post_meta ()
utenti add_user_meta () get_user_meta () update_user_meta () delete_user_meta ()
Commenti add_comment_meta () get_comment_meta () update_comment_meta () delete_comment_meta ()
parametri $ post_id, $ meta_key, $ meta_value, $ unico (opzionale) $ post_id, $ meta_key, $ singolo (opzionale), 
$ post_id, $ meta_key, $ meta_value, $ prev_value (opzionale) $ post_id, $ meta_key, $ meta_value (opzionale)

Queste funzioni possono essere utilizzate nei file del modello e nei plug-in, ad esempio nel modello di singolo post del tema, è possibile utilizzare quanto segue per emettere i metadati relativi al post:

Questo è solo un modo molto semplice per produrre alcuni metadati - ci sono molte più possibilità, alcune delle quali tratteremo più avanti in questa serie.

Sommario

WordPress utilizza tre tabelle di metadati per archiviare i dati su tre tipi di contenuto: post, utenti e commenti. Queste tabelle sono utilizzate per tutto ciò che non è memorizzato nel core wp_posts, wp_users e wp_comments tabelle e sono le tabelle su cui scrivere i dati se si aggiungono nuovi campi tramite temi o plug-in. Le tre tabelle funzionano in modo quasi identico e hanno funzioni molto simili che è possibile utilizzare per aggiungere, aggiornare, eliminare e ottenere metadati.

Come ho detto sopra, i termini di tassonomia potrebbero essere visti come un altro tipo di metadati in WordPress, e questi sono quelli che tratterò nella prossima parte di questa serie.