Wie man mit WordPress-User-Metadaten arbeitet

Im vorherigen Artikel haben wir die Arbeit mit Post-Metadaten in WordPress unter Verwendung der bereitgestellten APIs erörtert. Wir haben auch eine Reihe von Tools behandelt, die Sicherheitsvorstellungen und die erforderlichen Voraussetzungen, um die Umgebung zu schaffen, in der mit dem Code gearbeitet wird, der im gesamten Lernprogramm bereitgestellt wird.

Wenn Sie diesen Artikel nicht gelesen haben, empfehle ich dringend, ihn zu überprüfen, nicht nur, weil er die Arbeit mit Post-Metadaten behandelt, sondern auch, weil er auf einige wichtige Themen trifft, die für den Rest der Artikel in dieser Reihe relevant sind (und es spielt auf einige an, die später in diesem Jahr kommen sollen).

Wenn Sie davon überzeugt sind, dass Sie alle über eine weitere Metadaten-API informiert sind, können Sie mit der WordPress User Meta API beginnen.

Die WordPress User Meta API

In WordPress werden Metadaten auf folgende Weise definiert:

Metadaten werden mit Schlüssel / Wert-Paaren behandelt. Der Schlüssel ist der Name des Metadatenelements. Der Wert ist die Information, die in der Metadatenliste in jedem einzelnen Beitrag angezeigt wird, dem die Informationen zugeordnet sind.

Während wir mit den verschiedenen Metadaten-APIs arbeiten, werden Sie feststellen, dass diese Definition unabhängig von der untersuchten API gilt.

Das Schöne daran ist, dass Sie, sobald Sie sich mit der Bearbeitung einer Metadaten-API befasst haben, eine allgemeine Vorstellung davon haben, wie die jeweiligen APIs funktionieren. Sicher, es kann hier und dort Nuancen geben, aber die allgemeine Funktionalität ist die gleiche.

Arbeiten mit der Benutzermetadaten-API

Beim Betrachten der WordPress Post Meta API haben wir die folgenden Funktionen geprüft und verwendet:

  • add_post_meta
  • update_post_meta
  • get_post_meta
  • delete_post_meta

Ja, es gibt Idiosynkrasien unter ihnen, insbesondere in Bezug auf die Art und Weise add_post_meta und update_post_meta Arbeit und die verschiedenen Möglichkeiten get_post_meta und delete_post_meta funktionieren, und die APIs, die wir untersuchen werden, werden auf die gleiche Weise funktionieren.

Für den Rest dieses Artikels gehe ich davon aus, dass Sie über einen lokalen Webserver, Zugriff auf ein Datenbank-Frontend und eine IDE verfügen und mit der Datei vertraut sind tutsplus-metadata.php.

Wenn Sie neugierig sind, verwende ich die folgenden Tools:

  • MAMP
  • Atom
  • Sequel Pro
  • zwanzigzehn

Beachten Sie, dass die Metadaten des Benutzers im gespeichert werden wp_usermeta Datenbanktabelle, so dass wir in Screenshots der Datenbank darauf verweisen. Im Gegensatz zur ursprünglichen Post-Metadatentabelle befinden sich tatsächlich einige Daten in der Metadatentabelle des Benutzers.

Dies ist auf einige der Daten zurückzuführen, die auf dem Bildschirm des Benutzerprofils gespeichert sind:

Trotzdem wird es uns die API ermöglichen, unsere eigenen Informationen in die Tabelle zu schreiben. Lassen Sie uns mit all dem gesagt werden, wie Sie mit den von WordPress bereitgestellten Funktionen arbeiten.

Beachten Sie, dass wir durch alle aufgeführten Beispiele weitergeben werden 1 Für den ersten Parameter der API-Funktionen ist der Site-Administrator immer der erste Benutzer. Dies ist in der Regel in jeder Installation garantiert.

Hinzufügen von User Meta

Sie finden einen Verweis auf die add_user_meta Funktion im Codex. Die Definition der Funktion ist so kurz wie möglich:

Fügen Sie dem Datensatz eines Benutzers Metadaten hinzu.

Wie vorteilhaft ist das? Das heißt, wenn Sie an einem Plugin oder einer auf WordPress basierenden Webanwendung arbeiten und das erweitern möchten, was eine Person mit ihrem Profil verknüpfen kann, ist dies eine Möglichkeit, dies zu tun.

Dies kann so einfach sein wie das Bereitstellen eines Benutzerprofils in einem bestimmten sozialen Netzwerk oder etwas Fortgeschrittenes, bei dem Sie dem Benutzer möglicherweise Daten in einer anderen Tabelle, ein Array von Informationen oder etwas anderes zuordnen.

Unabhängig davon gehen Sie so vor. Hier ist jedoch die Sache: Denken Sie daran, wie Sie Metadaten für einen Beitrag schreiben, indem Sie die add_post_meta Funktion führte dazu, dass mehrere Zeilen mit demselben Schlüssel geschrieben werden konnten?

Dasselbe ist möglich mit add_user_meta. Die API-Funktion akzeptiert jedoch einen optionalen vierten Parameter, ob ein Wert, der eingefügt wird, eindeutig ist oder nicht.

Nicht eindeutige Werte

Sehen wir uns also zunächst den Code zum Hinzufügen einiger Metadaten von Benutzern an, indem Sie nicht angeben, dass diese eindeutig sein sollen.

Der Code dafür sieht so aus:

Beachten Sie, dass wir dieselbe Strategie wie zuvor in dieser Serie verwenden:

  1. Wir hängen an der Inhalt.
  2. Wir prüfen, ob wir im Internet sind Hallo Welt Post.
  3. In diesem Fall fügen wir die Metadaten der Benutzer hinzu.
  4. Wir kehren zurück $ content zu WordPress.

Mit diesem Code an Ort und Stelle Hallo Welt Post in Ihrem Browser geladen, aktualisieren Sie die Seite einige Male.

Wenn Sie fertig sind, sieht die resultierende Datenbanktabelle folgendermaßen aus:

Wie gesagt, es ist sehr ähnlich wie die Post-Metadaten-API.

Einzigartige Werte

Löschen Sie über Ihr Datenbank-Frontend die erstellten Zeilen oder wählen Sie einen neuen Schlüssel (z. B. etwas anderes) instagram_Benutzername). Ich werde die Zeilen löschen.

Zweitens werde ich auch eine zweite Funktion erstellen, anstatt die obige zu ändern, sodass ich den vollständigen Quellcode am Ende des Tutorials anbieten kann. Lesen Sie den folgenden Code daher genau durch:

Geben Sie zunächst einen eindeutigen Wert für den Metawert (oder das dritte Argument) im Funktionsaufruf an. Aktualisieren Sie die Seite einige Male und werfen Sie einen Blick auf die Datenbank. Es sollte ungefähr so ​​aussehen:

Beachten Sie, was interessant ist Es gibt immer noch mehrere Werte, die jedoch alle gleich sind.

Versuchen Sie nun, das Meta-Wert-Argument ein paar Mal zu ändern, und schauen Sie sich dann die Datenbank an. Sie sollten etwa Folgendes sehen:

Beachten Sie den Unterschied Genau, es gibt keinen. Das liegt daran, dass wir sagten, dass es nur einen eindeutigen Schlüssel geben könnte. Das heißt also nicht unbedingt, dass nur ein Datensatz erstellt wird. Dies bedeutet, dass beim Aufrufen der Funktion mehrere Datensätze erstellt werden, es wird jedoch immer der erste gespeicherte Wert verwendet, der dieser Taste zugeordnet ist.

Wenn Sie möchten, löschen Sie die Zeilen, die wir gerade erstellt haben, da dies eine gute Funktion für die nächste Funktion darstellt.

Aktualisieren von User Meta

Ähnlich wie die Post-Meta-API funktioniert die Aktualisierungsfunktion auf folgende Weise:

Aktualisieren Sie das Meta-Feld des Benutzers basierend auf der Benutzer-ID. Verwenden Sie den Parameter $ prev_value, um zwischen Meta-Feldern mit demselben Schlüssel und derselben Benutzer-ID zu unterscheiden. Wenn das Meta-Feld für den Benutzer nicht vorhanden ist, wird es hinzugefügt.

Wenn Sie mit dieser Funktion arbeiten, ist es hilfreich, in zwei Szenarien darüber nachzudenken:

  1. wenn vorherige Metadaten mithilfe von hinzugefügt wurden add_user_meta Funktion und es gibt mehrere Datensätze mit den gleichen Informationen
  2. Wenn keine Metadaten hinzugefügt wurden, fügen wir einen neuen Datensatz hinzu und möchten, dass er eindeutig ist

Im ersten Fall hilft es, die $ prev_value weil Sie WordPress sagen, welchen Wert Sie anvisieren und aktualisieren möchten. 

Wenn wir Metadaten hinzugefügt haben

Nehmen Sie beispielsweise an, dass unsere Datenbank so aussieht wie zuvor im Lernprogramm:

Und wir möchten die Datensätze aktualisieren, die den vorherigen Wert von haben https://twitter.com/tommcfarlin/. Dazu aktualisieren wir den Code, der so aussieht.

Und dann würde das Update der Datenbank so aussehen:

Beachten Sie, dass dies aktualisiert wird alles Werte, die diesem Metaschlüssel zugeordnet sind. Das ist natürlich nur eine Verwendung der Funktion.

Beim Hinzufügen neuer Metadaten

Im zweiten Fall müssen Sie keinen vorherigen Wert angeben, da Sie zum ersten Mal Informationen hinzufügen. 

Zur Verdeutlichung können Sie die update_user_meta Funktion, wenn Sie Informationen zur Datenbank hinzufügen möchten. Es muss nicht existieren, bevor es verwendet wird.

Dies ist nützlich, wenn Sie einen einzelnen, eindeutigen Datensatz hinzufügen möchten, der noch zur Datenbank hinzugefügt werden muss. Die Verwendung der Funktion ist einfach. Angenommen, wir möchten den Namen des Geschwisters des Benutzers speichern.

In diesem Fall würden wir Folgendes tun:

Dies führt dazu, dass der folgende Datensatz in die Datenbank eingegeben wird:

Wenn Sie die Seite mehrmals aktualisieren und dann Ihre Datenbanktabelle überprüfen, werden Sie feststellen, dass nur eine einzige Instanz des Werts geschrieben wird, während mehrere Werte verwendet werden add_user_meta.

Wenn wir diesen Wert jemals ändern wollten, würden wir den mit dem angegebenen Metaschlüssel verknüpften Metawert aktualisieren und den einzelnen Datensatz aktualisieren.

Benutzer-Meta abrufen

Wenn es darum geht, Metadaten von Benutzern abzurufen, haben wir die get_user_meta Funktion. An diesem Punkt sollte klar sein, dass die erwarteten Parameter die Benutzer-ID und der Metaschlüssel sein werden. 

Aber wie sieht es mit dem Meta-Wert aus??

Denken Sie daran, dass wir beim Abrufen von Informationen nur die Benutzer-ID und den Metaschlüssel benötigen, da dies die identifizierenden Informationen für einen bestimmten Wert sind. 

Was passiert aber, wenn der Entwickler mehrere Datensätze für einen einzelnen Schlüssel hat? Genauer gesagt, was ist, wenn sie die verwendet haben add_user_meta funktionieren wie oben und haben mehrere Datensätze?

Hier kommt der optionale vierte Parameter ins Spiel: ein boolescher Wert, den wir angeben, wenn wir einen einzelnen Wert oder ein Array von Werten abrufen möchten. Der Standardwert (der Wert, der übergeben wird, wenn er nicht angegeben ist) ist falsch Daher erhalten wir immer ein Array zurück, sofern nicht anders angegeben.

Alle Datensätze abrufen

Nehmen wir an, dass wir die gleichen Daten aus dem vorherigen Abschnitt des Tutorials bearbeiten. Das heißt, wir haben mehrere Einträge für ein Twitter-Konto eines Benutzers. Erinnern Sie sich daran, dass die Datenbank so aussah:

Um all diese Informationen aus der Datenbank zu holen und auf dem Bildschirm anzuzeigen, verwenden wir den folgenden Code:

Angenommen, alles lief gut, dann sollten Sie so etwas oben in Ihrem sehen Hallo Welt Post:

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

Wenn nicht, überprüfen Sie den Aufruf von var_dump, den Sie gemacht haben, und überprüfen Sie die Informationen ist in der Datenbank bereit, abgerufen zu werden.

Einzelnen Datensatz abrufen

Wenn Sie einen einzelnen Datensatz abrufen möchten, können Sie als letzten Parameter true an die Funktion übergeben. Dadurch wird der erste Datensatz abgerufen, der im Zeichenfolgenformat erstellt wurde.

Und das Ergebnis dieses Codes wird oben in der Liste ausgedruckt Hallo Welt Post, von dem aus wir gearbeitet haben:

https://twitter.com/tommcfarlin/

Beachten Sie das, wenn Sie verwenden update_user_meta und du nicht angeben wahr Als letzten Parameter erhalten Sie ein Single-Index-Array, das Ihnen zurückgegeben wird. 

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

Wenn Sie also nach einer Zeichenfolgendarstellung suchen, gehen Sie immer weiter wahr.

User Meta löschen

Das letzte, was wir behandeln müssen, ist das tatsächliche Löschen der Daten, die wir in die Datenbank geschrieben haben. Wenn Sie diese Serie bis jetzt mitverfolgt haben, entwickeln Sie wahrscheinlich eine Art Intuition, wie diese bestimmte Funktion funktionieren wird.

Auf der begleitenden Codex-Seite:

Entfernen Sie Metadaten-Übereinstimmungskriterien von einem Benutzer. Sie können basierend auf dem Schlüssel oder nach Schlüssel und Wert übereinstimmen. Durch das Entfernen von Schlüssel und Wert werden doppelte Metadaten mit demselben Schlüssel entfernt. Bei Bedarf können auch alle Metadaten-Übereinstimmungsschlüssel entfernt werden.

Beachten Sie, dass diese Funktion für den Fall konzipiert ist, dass mehrere Datensätze vorhanden sind und Sie alle löschen möchten, oder wenn Sie einen einzelnen Datensatz haben und diesen löschen möchten.

Mehrere Datensätze löschen

Zuerst schauen wir uns die Verwendung dieser Funktion an, wenn mehrere Datensätze mit denselben Informationen vorhanden sind. Nehmen wir an, für die Zwecke dieses Beispiels sieht die Datenbank etwa so aus:

Hier haben wir mehrere Datensätze. Um Datensätze mit demselben Schlüssel zu löschen, verwenden wir einen einzigen Aufruf an delete_user_meta Funktion und übergeben Sie die Benutzer-ID und den Metaschlüssel.

Wenn Sie die Informationen in der Datenbanktabelle aktualisieren, werden Sie feststellen, dass alle Datensätze gelöscht wurden:

Obwohl diese Funktion einfach zu bedienen ist, ist es wichtig zu wissen, dass sie mehrere Zeilen in einem einzigen Anruf löschen kann. Verwenden Sie sie daher mit Vorsicht.

Ein einzelner Datensatz

Wenn Sie dagegen einen einzigen Datensatz zum Löschen haben, benötigen Sie drei Informationen:

  1. die Benutzer-ID
  2. der Metaschlüssel
  3. der Metawert

Wenn Sie alle drei Werte haben, können Sie einen einzelnen Datensatz löschen. Es ist eindeutig deutlich präziser als bei der vorherigen Verwendung dieser Funktion. 

Nehmen wir in unserem Beispiel an, dass wir zwei Datensätze haben, die beide die twitter_account Metaschlüssel. Jeder Schlüssel hat den folgenden Wert:

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

In unserem Beispiel geht es nur darum, den zweiten Wert zu entfernen. Dazu verwenden wir den folgenden Code:

Und wenn Sie Ihre Datenbank aktualisieren, sollten Sie Folgendes (oder etwas Ähnliches) sehen:

Es ist schön, wenn eine API genau wie erwartet funktioniert.

Der vollständige Quellcode

Hier ist eine Kopie des gesamten Quellcodes, den wir in diesem Artikel behandelt haben. Bitte beachten Sie, dass die add_action Aufrufe wurden auskommentiert, da Sie sie je nach dem, was Sie beim Experimentieren mit dem Code tun möchten, auskommentieren müssen.

Sie können dies auch zu der Datei hinzufügen, die wir im vorherigen Tutorial erstellt haben. Das habe ich gemacht, als ich an den Beispielen gearbeitet habe; Sie sollten jedoch vorsichtig sein, wenn Sie an der Datei arbeiten, um die richtige zu erhalten add_action Anrufe werden basierend auf dem, was Sie tun möchten, festgelegt.

Fazit

Wie bereits erwähnt, können Sie die einzelnen Funktionen des WordPress-Codex überprüfen, die für WordPress-Entwickler immer einen Klick entfernt sein sollten.

Im letzten Artikel dieser Serie werden wir uns mit dem Umgang mit Kommentar-Metadaten befassen. Nach dem, was wir bisher gelernt haben, sollte es relativ einfach zu erlernen sein. 

Natürlich bleiben uns damit Metadaten im Zusammenhang mit Taxonomien erhalten. Aufgrund der Art der Taxonomien, der Begriffe und der APIs werden wir diese in den Folgeserien überprüfen.

Experimentieren Sie zunächst mit dem in diesem Artikel bereitgestellten Code. Denken Sie daran, dass es nur zu Demonstrationszwecken gedacht ist und nicht in einer Produktionsumgebung ausgeführt werden sollte.

In dieser ganzen Serie versuchen wir, eine Grundlage für zukünftige WordPress-Entwickler zu schaffen, auf der sie aufbauen können, wenn sie fortfahren und an Lösungen für ihren Arbeitgeber, ihre Kunden oder für ihre eigenen Projekte arbeiten.

Ich freue mich darauf, diese Serie fortzusetzen. Denken Sie daran, wenn Sie gerade erst anfangen, können Sie in meiner Serie erfahren, wie Sie mit WordPress anfangen können, das sich auf Themen konzentriert, die speziell für Anfänger von WordPress gedacht sind.

Wenn Sie nach anderen Dienstprogrammen suchen, die Sie dabei unterstützen, Ihre wachsenden Werkzeuge für WordPress aufzubauen oder um Code zu lernen und sich mit WordPress vertraut zu machen, sollten Sie nicht vergessen, was wir in Envato zur Verfügung haben Markt.

Schließlich können Sie alle meine Kurse und Tutorials auf meiner Profilseite sehen. Weitere Artikel über die Entwicklung von WordPress und WordPress finden Sie in meinem Blog. Fühlen Sie sich frei, mir auf Twitter bei @tommcfarlin zu folgen, wo ich über verschiedene Softwareentwicklungspraktiken spreche und wie wir sie in WordPress einsetzen können.

Bitte zögern Sie nicht, Fragen oder Kommentare in den untenstehenden Feed zu schreiben, und ich werde versuchen, auf jeden von ihnen zu antworten.

Ressourcen

  • Benutzerdefinierte Felder
  • add_user_meta
  • update_user_meta
  • get_user_meta
  • delete_user_meta
  • Echo
  • var_dump