webentwicklung-frage-antwort-db.com.de

Wie kann ich benutzerdefinierte Daten/Tabellen erstellen und damit arbeiten (d. H. Für beliebige Daten)?

Erste Schritte in Wordpress nur heute. Ich habe festgestellt, dass Wordpress beim ersten Einrichten Tabellen in einer MySQL-Datenbank (mit dem Namen * .wrdp1) erstellt hat. Diese Tabellen enthalten Kommentare, Beiträge, Benutzer und einige Verknüpfungsbeziehungen.

Angenommen, ich möchte mit einem neuen Datensatz arbeiten. Angenommen, ich würde eine Seite mit zwei Dingen erstellen:

  • ein Textfeld , in das meine Benutzer eine Zahl zwischen 1 und 10 eingeben können
  • ein Diagramm , das die Häufigkeit der von meinen Benutzern historisch eingegebenen Zahlen anzeigt

Meine Vermutung: Für so etwas wie das oben Genannte muss ich vermutlicheine benutzerdefinierte Tabelle/einen Datensatz in der Datenbankeinrichten, damit diese Nummerndaten geschrieben werden können und dann lesen. (Ich vermute auch, dass ich etwas PHP verwenden muss, um die Nummer aus dem Textfeld in der Datenbank zu speichern und später die Nummern zurückzulesen.)

Kann jemand grob umreißen, wie ein empfohlener Ansatz in diesem Fall aussehen würde?(Die genauen Details kann ich dann selbst recherchieren.)

1
boardbite

WordPress bietet eine ziemlich flexible Möglichkeit, benutzerdefinierte Daten zu verarbeiten, und speichert sie in einer Tabelle mit dem Namen wp_postmeta (unter der Annahme des Standardpräfix wp_). Der einzige Haken ist, dass es davon ausgeht, dass es irgendwie mit einem bestimmten Post zusammenhängt, was ich nicht sicher bin, ob du es wirklich willst.

Es ist sehr einfach zu bedienen (siehe hier für weitere Informationen):

// Add a custom data (i.e. textfield of value '5') for post ID = 1
update_post_meta(1, 'my_textfield', 5);

// Return an array which contains 'my_textfield' values from post ID = 1
get_post_meta(1, 'my_textfield', true);

Wenn sich die Informationen nicht auf einen Beitrag, sondern auf einen Benutzer beziehen, können Sie auch die Tabelle wp_usermeta verwenden. Die Idee ist die gleiche (siehe hier für mehr):

// Add a custom data (i.e. textfield of value '5') for to user 1
update_user_meta(1, 'my_textfield', 5);

// Return an array which contains 'my_textfield' values for user 1
get_user_meta(1, 'my_textfield', true);

Das Erstellen einer benutzerdefinierten Tabelle sollte ein letzter Ausweg sein und nur verwendet werden, wenn die benutzerdefinierten Informationen, die Sie speichern möchten, mehr als einen Wert haben (dh Sie müssen die vom Benutzer gewählte Nummer, den Zeitpunkt der Aufzeichnung und die IP-Adresse dieses Benutzers kennen , usw). In diesem Fall müssen Sie Ihre eigenen Funktionen codieren, um Werte zu dieser Tabelle hinzuzufügen, ganz zu schweigen vom Code PHP, mit dem diese Tabelle überhaupt erstellt wird. Es ist komplizierter, jeder, der es zuvor getan hat, wird bestätigen, dass es eine heikle Angelegenheit ist und schwer zu debuggen ist, und es gibt keine Garantie, dass es in zukünftigen WordPress-Versionen nicht kaputt geht. Wie auch immer, wenn Sie das brauchen, sollte dies Sie zum Laufen bringen.

Ich hoffe es hilft! Lass uns wissen, wie es geht.

1
Tomas Buteler

Um die Antwort von @ tbuteler zu ergänzen, haben Sie auch benutzerdefinierte Beitragstypen , denen eigene Metadaten zugeordnet werden können. Wenn Sie sich die Seite Beitragstypen ansehen, werden Sie sehen, wie WordPress diese auf nicht offensichtliche Weise verwendet, wie zum Beispiel das Speichern von Navigationsmenüelementen. Es gibt auch benutzerdefinierte Taxonomien , mit denen Beziehungen wie die eingebauten Kategorien und Tags erstellt werden können. Wie bei Metadaten gibt es eine ganze Reihe von API-Funktionen zum Verwalten dieser Objekte, mit denen Sie Ihre eigene Benutzeroberfläche zum Verwalten Ihrer Daten erstellen können.

2
Milo