7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. WordPress

Wie man mit WordPress-User-Metadaten arbeitet

Scroll to top
Read Time: 18 mins
This post is part of a series called How to Work with WordPress Metadata.
How to Work With WordPress Post Metadata
How to Work With WordPress Comment Metadata

German (Deutsch) translation by Wei Zhang (you can also view the original English article)

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 die restlichen Artikel in dieser Reihe relevant sind (und es spielt auf einige an, die später in diesem Jahr kommen werden).

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

Rückruf von früher in dieser Serie,WordPress definiert Metadaten auf folgende Weise:

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, unter ihnen gibt es Eigenheiten, vor allem in Bezug auf die Funktionsweise von add_post_meta und update_post_meta und die verschiedenen Möglichkeiten, mit denen get_post_meta und delete_post_meta arbeiten.

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 tutsplus-metadata.php vertraut sind.

Wenn Sie neugierig sind, verwende ich die folgenden Tools:

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

wp_usermetawp_usermetawp_usermeta

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

The User Profile ScreenThe User Profile ScreenThe User Profile Screen

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

Beachten Sie, dass wir in allen Beispielen 1 für den ersten Parameter an die API-Funktionen übergeben, da der erste Benutzer immer der Site-Administrator ist. Dies ist in der Regel in jeder Installation garantiert.

Hinzufügen von User Meta

Einen Verweis auf die Funktion add_user_meta finden Sie 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 verbinden kann, ist dies eine Möglichkeit.

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 die Sache jedoch: Denken Sie daran, dass das Schreiben von Metadaten für einen Beitrag mit der Funktion add_post_meta dazu führte, dass mehrere Zeilen mit demselben Schlüssel geschrieben werden konnten?

Dasselbe ist mit add_user_meta möglich. 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 Benutzermetadaten an, indem wir 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 the_content.
  2. Wir prüfen, ob wir uns auf dem Hello World-Post befinden.
  3. In diesem Fall fügen wir die Metadaten der Benutzer hinzu.
  4. Wir geben $content an WordPress zurück.

Aktualisieren Sie die Seite mit diesem Code und dem Hello World-Post in Ihrem Browser ein paar Mal.

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

Non-unique MetadataNon-unique MetadataNon-unique Metadata

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

Einzigartige Werte

Löschen Sie über Ihr Datenbank-Front-End die erstellten Zeilen, oder wählen Sie einen neuen Schlüssel (z. B. instagram_username). 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:

Multiple RecordsMultiple RecordsMultiple Records

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:

Unique MetadataUnique MetadataUnique Metadata

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 Metafeldern 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 mit der Funktion add_user_meta hinzugefügt wurden und mehrere Datensätze mit denselben Informationen vorhanden sind
  2. Wenn keine Metadaten hinzugefügt wurden und wir einen neuen Datensatz hinzufügen und ihn eindeutig machen möchten

Im ersten Fall ist es hilfreich, den $prev_value anzugeben, da Sie WordPress mitteilen, welchen Wert Sie als Ziel festlegen und aktualisieren möchten.

Wenn wir Metadaten hinzugefügt haben

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

DatabaseDatabaseDatabase

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

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

Updating User Meta DataUpdating User Meta DataUpdating User Meta Data

Beachten Sie, dass dies alle Werte aktualisiert, 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 Funktion update_user_meta verwenden, wenn Sie der Datenbank Informationen 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:

Updating user metadataUpdating user metadataUpdating user metadata

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

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 um das Abrufen von Metadaten von Benutzern geht, haben wir die Funktion get_user_meta. An diesem Punkt sollte klar sein, dass die erwarteten Parameter die Benutzer-ID und der Metaschlüssel sein werden.

Aber was ist mit dem Meta-Wert?

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? Was ist, wenn sie die Funktion add_user_meta wie oben verwendet haben und mehrere Datensätze haben?

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 wird) ist false. 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:

Non-unique Meta DataNon-unique Meta DataNon-unique Meta Data

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 oben in Ihrem Hello World-Beitrag so etwas sehen:

Wenn nicht, überprüfen Sie den Aufruf von var_dump, den Sie gemacht haben, und stellen Sie sicher, dass die Informationen in der Datenbank abgerufen werden können.

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 dies oben im Hello World-Beitrag ausdrucken, von dem aus wir gearbeitet haben:

Wenn Sie update_user_meta verwenden und nicht als endgültigen Parameter true angeben, erhalten Sie ein Array mit einem Index, das Ihnen zurückgegeben wird.

Wenn Sie also nach einer Zeichenfolgendarstellung von Informationen suchen, übergeben Sie immer true.

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:

Metadaten-Übereinstimmungskriterien von einem Benutzer entfernen 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 Sie auch alle passenden Metadaten-Schlüssel entfernen.

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:

Multiple RecordsMultiple RecordsMultiple Records

Hier haben wir mehrere Datensätze. Um Datensätze mit demselben Schlüssel zu löschen, verwenden wir einen einzigen Aufruf der Funktion delete_user_meta und übergeben 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:

All records erasedAll records erasedAll records erased

Obwohl diese Funktion einfach zu bedienen ist, müssen Sie bedenken, dass sie mehrere Zeilen in einem einzigen Anruf löschen kann.

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 den Metaschlüssel twitter_account haben. Jeder Schlüssel hat den folgenden Wert:

  1. https://twitter.com/tommcfarlin
  2. https://twitter.com/pressware
Multiple Twitter AccountsMultiple Twitter AccountsMultiple Twitter Accounts

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:

A single record remainsA single record remainsA single record remains

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 Aufrufe von add_action auskommentiert wurden, da Sie sie aus dem Kommentar entfernen müssen, je nachdem, was Sie beim Experimentieren mit dem Code tun möchten.

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 bei der Arbeit an der Datei vorsichtig sein, damit die richtigen add_action-Aufrufe auf der Grundlage der gewünschten Aktion festgelegt werden.

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 den Umgang mit Kommentar-Metadaten ansehen. 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. Beachten Sie, 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 anbieten 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 Softwareentwicklungsverfahren 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

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.