Come lavorare con i metadati utente di WordPress

Nel precedente articolo, abbiamo discusso di lavorare con i metadati dei post in WordPress usando le API fornite. Abbiamo anche trattato una varietà di strumenti, le idee di sicurezza e ciò che sarebbe necessario per impostare l'ambiente in cui lavorare con il codice che verrebbe fornito durante il tutorial.

Se non hai letto quell'articolo, ti consiglio vivamente di rivederlo non solo perché tratta come lavorare con i metadati dei post, ma anche perché tocca alcuni argomenti importanti che sono rilevanti per il resto degli articoli di questa serie (e allude a qualcuno che arriverà più tardi quest'anno).

Supponendo che tu sia tutto preso e pronto per imparare su un'altra delle API di metadati, quindi iniziamo con l'API Meta per utenti di WordPress.

L'API Meta per utente WordPress

Ricordiamo da prima in questa serie, WordPress definisce i metadati nel modo seguente:

I meta-dati sono gestiti con coppie chiave / valore. La chiave è il nome dell'elemento meta-dati. Il valore è l'informazione che apparirà nell'elenco dei meta-dati su ogni singolo post a cui l'informazione è associata.

Mentre continuiamo a lavorare con le varie API di metadati, scoprirai che questa definizione è vera indipendentemente dall'API che viene esplorata.

La cosa bella è che una volta che hai preso una mano su come affrontare un'API di metadati, hai un'idea generale su come funzionerà ciascuna delle API correlate. Certo, ci possono essere sfumature qua e là, ma la funzionalità generale sarà la stessa.

Lavorare con l'API dei metadati dell'utente

Quando osserviamo l'API di WordPress Post Meta, abbiamo esaminato e utilizzato le seguenti funzioni:

  • add_post_meta
  • update_post_meta
  • get_post_meta
  • delete_post_meta

Sì, ci sono idiosincrasie tra di loro, specialmente in relazione a come add_post_meta e update_post_meta lavoro e i vari modi get_post_meta e delete_post_meta lavoro, e le API che stiamo per esaminare funzioneranno molto allo stesso modo.

Per il resto di questo articolo, presumo che tu disponga di un server Web locale, di un accesso a un front-end di database, di un IDE e che tu stia comodamente lavorando con il file tutsplus-metadata.php.

Se sei curioso, userò il seguente set di strumenti:

  • MAMP
  • Atomo
  • Sequel Pro
  • twentysixteen

Si noti che i metadati dell'utente verranno memorizzati nel file wp_usermeta tabella di database, quindi faremo riferimento a ciò in qualsiasi screenshot del database. A differenza della tabella dei post dei metadati iniziali, alcuni dati sono già presenti nella tabella dei metadati dell'utente.

Questo a causa di alcuni dei dati memorizzati nella schermata del profilo utente:

Tuttavia, l'API ci consentirà di scrivere le nostre informazioni sul tavolo. Quindi, con tutto ciò che detto, andiamo avanti e dare un'occhiata a come lavorare con le funzioni fornite da WordPress.

Nota che attraverso tutti gli esempi forniti, stiamo per passare 1 per il primo parametro alle funzioni API poiché il primo utente è sempre l'amministratore del sito. Questo è generalmente garantito per essere presente in ogni data installazione.

Aggiunta Meta utente

È possibile trovare un riferimento al add_user_meta funzione nel codice. La definizione della funzione è il più succinta possibile:

Aggiungi metadati al record di un utente.

Quanto è benefico questo? Cioè, se dovessi lavorare su un plugin o un'applicazione web costruita su WordPress e stai cercando di estendere ciò che una persona è in grado di associare al loro profilo, allora questo è un modo per farlo.

Potrebbe essere qualcosa di semplice come fornire il profilo di un utente su un determinato social network, o potrebbe essere qualcosa di più avanzato in cui si può associare l'utente con i dati contenuti in un'altra tabella, una serie di informazioni o qualcos'altro.

Indipendentemente da ciò, questo è il modo in cui lo fai. Ecco la cosa, però: ricorda come scrivere i metadati per un post usando il add_post_meta la funzione ha portato a scrivere più righe usando la stessa chiave?

La stessa cosa è possibile usando add_user_meta. Tuttavia, la funzione API accetta un quarto parametro facoltativo sull'opportunità o meno che il valore inserito sia o meno univoco.

Valori non unici

Quindi, per prima cosa, diamo un'occhiata al codice per aggiungere alcuni metadati utente, e facciamo così non specificando che dovrebbe essere univoco.

Il codice per farlo sarà simile a questo:

Nota che stiamo usando la stessa strategia utilizzata in precedenza in questa serie:

  1. Ci colleghiamo il contenuto.
  2. Controlliamo per vedere se siamo sul Ciao mondo inviare.
  3. Se è così, aggiungiamo i metadati dell'utente.
  4. Torniamo $ content a WordPress.

Con questo codice in atto e con il Ciao mondo carica caricato nel browser, aggiorna la pagina alcune volte.

Una volta fatto, la tabella risultante del database sarà simile a questa:

Come ho detto, è molto simile a come viene eseguita l'API post metadata.

Valori unici

Usando il front-end del database, elimina le righe che sono state create o sentiti libero di scegliere una nuova chiave (forse qualcosa di simile instagram_username). Ho intenzione di eliminare le righe.

In secondo luogo, creerò anche una seconda funzione piuttosto che modificare quella sopra in modo da poter offrire il codice sorgente completo alla fine del tutorial, quindi leggi attentamente il seguente codice:

Innanzitutto, fornire un valore univoco per il meta-valore (o il terzo argomento) nella chiamata di funzione. Aggiorna la pagina alcune volte e poi dai un'occhiata al database. Dovrebbe assomigliare a qualcosa di simile a questo:

Nota cosa è interessante? Ci sono ancora più valori, ma sono tutti uguali.

Ora prova a cambiare l'argomento del valore meta un paio di volte, poi dai un'occhiata al database e dovresti vedere qualcosa di simile a questo:

Nota la differenza? Esattamente, non ce n'è uno. Questo perché abbiamo detto che poteva esserci solo una chiave unica. Quindi non significa necessariamente che sia stato creato un solo record. Significa che verranno creati più record quando viene chiamata la funzione, ma utilizzerà sempre il primo valore memorizzato associato a tale chiave.

Se vuoi, vai avanti ed elimina le righe che abbiamo appena creato in quanto fornisce un grande seguito nella prossima funzione.

Aggiornamento utente Meta

In modo simile a come funziona l'API Post Meta, la funzionalità di aggiornamento funziona nel seguente modo:

Aggiorna il campo meta dell'utente in base all'ID utente. Utilizza il parametro $ prev_value per distinguere tra i meta campi con la stessa chiave e lo stesso ID utente. Se il campo meta per l'utente non esiste, verrà aggiunto.

Quando si lavora con questa funzione, è utile pensare a questo in due scenari:

  1. quando i metadati precedenti sono stati aggiunti usando il add_user_meta funzione e ci sono più record con le stesse informazioni
  2. quando non sono stati aggiunti metadati e stiamo aggiungendo un nuovo record e vogliamo che sia univoco

Nel primo caso, aiuta a fornire il $ prev_value perché stai dicendo a WordPress quale valore assegnare e aggiornare. 

Quando abbiamo aggiunto i metadati

Ad esempio, supponiamo che il nostro database abbia l'aspetto di prima nel tutorial:

E vogliamo aggiornare i record che hanno il valore precedente di https://twitter.com/tommcfarlin/. Per fare ciò, aggiorneremmo il codice che assomiglia a questo.

E quindi l'aggiornamento al database sarebbe simile a questo:

Si noti che questo aggiornamenti tutti i valori associati a questa meta chiave. Naturalmente, questo è solo un uso della funzione.

Quando si aggiungono nuovi metadati

Nel secondo caso, non avrai bisogno di specificare un valore precedente perché stai per aggiungere informazioni per la prima volta. 

Per chiarire, puoi usare il update_user_meta funzione quando si desidera aggiungere informazioni al database. Non deve esistere prima di usarlo.

Ciò è utile ogni volta che si desidera aggiungere un singolo record univoco che deve ancora essere aggiunto al database. L'utilizzo della funzione è semplice. Diciamo che vogliamo salvare il nome del fratello dell'utente.

In questo caso, faremmo questo:

E questo porta al seguente record inserito nel database:

Se aggiorni la pagina diverse volte e poi controlli la tabella del tuo database, noterai che solo una singola istanza del valore viene scritta rispetto a più valori che vengono quando si usa add_user_meta.

Quindi, se volessimo modificare questo valore, aggiorneremmo il meta-valore associato alla meta chiave specificata e aggiornerebbe quel singolo record.

Recupero Meta utente

Quando si tratta di recuperare i metadati dell'utente, abbiamo il get_user_meta funzione. A questo punto, dovrebbe essere chiaro che i parametri previsti saranno l'ID utente e la meta chiave. 

Ma per quanto riguarda il valore meta?

Ricorda quando stiamo recuperando le informazioni, abbiamo solo bisogno dell'ID utente e della meta chiave poiché si tratta di informazioni identificative per un valore specifico. 

Ma cosa succede se lo sviluppatore ha più record per una singola chiave? Più nello specifico, cosa succede se hanno usato il add_user_meta funziona come abbiamo fatto sopra e abbiamo più record?

È qui che entra in gioco il quarto parametro opzionale: un valore booleano che specifichiamo se vogliamo recuperare un singolo valore o un array di valori. Il valore predefinito (quello che viene passato se non è specificato) è falso quindi torneremo sempre ad un array a meno che non specifichiamo diversamente.

Recupero di tutti i record

Supponiamo che stiamo lavorando sullo stesso set di dati da precedenti nel tutorial. Cioè, abbiamo più voci per l'account Twitter di un utente. Ricorda che il database assomigliava a questo:

Per ottenere tutte queste informazioni dal database e visualizzate sullo schermo, utilizzeremmo il seguente codice:

Supponendo che tutto sia andato bene, allora dovresti vedere qualcosa di simile in cima al tuo Ciao mondo inviare:

[0] => string (32) "https://twitter.com/tommcfarlin/" [1] => string (32) "https://twitter.com/tommcfarlin/" [2] => stringa ( 32) "https://twitter.com/tommcfarlin/" [3] => stringa (32) "https://twitter.com/tommcfarlin/"

In caso contrario, ricontrolla la chiamata a var_dump che hai effettuato e assicurati che le informazioni è nel database pronto per essere recuperato.

Recupero di un singolo record

Nel caso in cui si desideri recuperare un singolo record, è possibile passare true come parametro finale alla funzione. Questo recupererà il primo record che è stato creato in formato stringa.

E il risultato di questo codice lo stamperà in cima al Ciao mondo post da cui abbiamo lavorato:

https://twitter.com/tommcfarlin/

Nota che se stai usando update_user_meta e tu non specificare vero come parametro finale, ti verrà restituito un array a indice singolo. 

array (1) [0] => string (32) "https://twitter.com/tommcfarlin/"

Quindi, se stai cercando una rappresentazione in formato stringa di informazioni, passa sempre vero.

Eliminazione Meta utente

L'ultima cosa che dobbiamo coprire è come eliminare effettivamente i dati che abbiamo scritto nel database. Se hai seguito questa serie fino ad ora, probabilmente svilupperai una sorta di intuizione su come funzionerà questa particolare funzione.

Dalla sua relativa pagina del Codex:

Rimuovi i criteri di corrispondenza dei metadati da un utente. Puoi abbinare in base alla chiave, o chiave e valore. Rimuovendo in base a chiave e valore, manterrai dalla rimozione di metadati duplicati con la stessa chiave. Permette anche di rimuovere tutta la chiave di corrispondenza dei metadati, se necessario.

Si noti che questa funzione è progettata per funzionare nel caso in cui esistano più record esistenti e si desideri eliminarli tutti o quando si dispone di un singolo record esistente e si desidera rimuoverlo.

Eliminazione di più record

Innanzitutto, daremo un'occhiata a come utilizzare questa funzione quando ci sono più record con le stesse informazioni. Supponiamo, ai fini di questo esempio, che il database assomigli a questo:

Qui, abbiamo più record. Per cancellare i record che hanno la stessa chiave, usiamo una singola chiamata al delete_user_meta funzione e passare l'ID utente e la meta chiave.

E se aggiorni le informazioni nella tabella del database, noterai che tutti i record sono stati cancellati:

Anche se questa è una funzione facile da usare, è importante ricordare che può eliminare più righe in una singola chiamata, quindi usala con attenzione.

Un singolo record

Se, al contrario, hai un singolo record da eliminare, allora hai bisogno di tre informazioni:

  1. l'ID dell'utente
  2. la meta chiave
  3. il valore meta

Avere tutti e tre i valori ti consentirà di eliminare un singolo record. Chiaramente, consente una precisione molto maggiore rispetto all'uso precedente di questa funzione. 

Quindi, nel nostro esempio, diciamo che abbiamo due record, entrambi i quali hanno il twitter_account meta chiave. Ogni chiave ha il seguente valore:

  1. https://twitter.com/tommcfarlin
  2. https://twitter.com/pressware

Nel nostro esempio, ci interessa solo rimuovere il secondo valore. Per farlo, useremo il seguente codice:

E poi se aggiorni il tuo database, dovresti vedere quanto segue (o qualcosa di simile):

È bello quando un'API funziona esattamente come ti aspetti.

Il codice sorgente completo

Ecco una copia di tutto il codice sorgente che abbiamo trattato in questo articolo. Si prega di notare che il add_action le chiamate sono state commentate in quanto è necessario decommentarle in base a ciò che si vuole fare quando si sperimenta il codice.

Inoltre, sentiti libero di aggiungere questo al file che abbiamo creato nel tutorial precedente. Questo è quello che ho fatto quando ho lavorato sugli esempi; tuttavia, si consiglia di prestare attenzione quando si lavora sul file in modo che sia corretto add_action le chiamate sono impostate in base a ciò che desideri fare.

Conclusione

Come accennato in precedenza nell'articolo, è possibile rivedere ciascuna delle funzioni nel codice WordPress, che dovrebbe sempre essere un clic di distanza per uno sviluppatore WordPress.

Nell'articolo finale di questa serie, daremo un'occhiata a come trattare i metadati dei commenti. Dato ciò che abbiamo imparato finora, dovrebbe essere qualcosa che è relativamente facile da imparare. 

Naturalmente, questo ci lascia ancora con i metadati relativi alle tassonomie. A causa della natura delle tassonomie, dei termini e delle API, esamineremo quelli delle serie di follow-up.

Per ora, continua a sperimentare con il codice che è stato fornito in questo articolo. Ricorda che è pensato solo a scopo dimostrativo e non dovrebbe essere eseguito in un ambiente di produzione.

Nel corso di questa serie, stiamo cercando di gettare le basi per i futuri sviluppatori di WordPress da cui partire quando vanno avanti e lavorano su soluzioni per il loro datore di lavoro, i loro clienti o per i loro progetti.

Detto questo, non vedo l'ora di continuare questa serie. Ricorda se hai appena iniziato, puoi dare un'occhiata alle mie serie su come iniziare con WordPress, che si concentra su argomenti specifici per i principianti di WordPress.

Nel frattempo, se stai cercando altre utilità che ti aiutino a costruire il tuo set crescente di strumenti per WordPress o che il codice studi e diventi più esperto in WordPress, non dimenticare di vedere cosa abbiamo a disposizione in Envato Mercato.

Infine, puoi vedere tutti i miei corsi e tutorial nella pagina del mio profilo e puoi leggere altri articoli sullo sviluppo di WordPress e WordPress sul mio blog. Sentitevi liberi di seguirmi su Twitter e su @tommcfarlin, dove parlo di varie pratiche di sviluppo del software e di come utilizzarle in WordPress.

Non esitare a lasciare qualsiasi domanda o commento nel feed qui sotto e cercherò di rispondere a ciascuno di essi.

risorse

  • Campi personalizzati
  • add_user_meta
  • update_user_meta
  • get_user_meta
  • delete_user_meta
  • eco
  • var_dump