1. Code
  2. WordPress

Benutzerdefinierte Felder zu WordPress Hinzu Programmieren

Scroll to top
3 min read

German (Deutsch) translation by Maurice Renck (you can also view the original English article)

Eines der Dinge, die WordPress als Content-Management-System so mächtig machen, ist, dass die post_meta Tabelle wie ein unbeschriebenes Blatt daher kommt und du ganz einfach eigene Metafelder hinzufügen kannst.

Wie du diese benutzt, kann abhängig vom Anwendungsfall und der Erweiterung sein, die du einsetzt, um eigene Felder anzulegen. Zum Beispiel die Custom Fields Suite oder Pods.

In einigen Fällen kannst du WordPress-Metadaten mit einer Vielzahl an Funktionen selber verwalten. WordPress bietet einige Funktionen an, um Metadatenfelder zu Beiträgen hinzuzufügen und mit Daten zu bestücken. In diesem Beitrag werde ich die Grundlagen zum Schreiben von Daten in die post_meta Tabelle behandeln.

Was ich in diesem Artikel zeige, ist bewusst begrenzt. Um etwas Komplizierteres zu tun, solltest du entweder die WPDB Klasse oder eine Erweiterung für benutzerdefinierte Felder benutzen, welche dir diese Art von schwerem Kraftakt abnehmen kann.

Für viele Arten von Erweiterungen oder CMS-Seiten, die nur ein paar wenige Felder brauchen, ist es dir möglich, mit ein paar Funktionen ganz einfach ein paar Felder zu erstellen und zu verwalten.

Metafelder hinzufügen

Du kannst ein Metafeld zu einem Beitrag hinzufügen, indem du add_post_meta() benutzt. Diese Funktion erlaubt es dir, ein Feld zu einem bestimmten Beitrag hinzuzufügen. Um zum Beispiel das Feld 'flavor' zu einem Beitrag jeden Typs mit der ID 12 und dem Wert 'vanilla' hinzuzufügen, kannst du Folgendes tun:

1
add_post_meta( 12, 'flavor', 'vanilla' );

Im letzten Beitrag, habe ich beschrieben, wie man das Userinterface von benutzerdefinierten Feldern im Beitragseditor handhabt. Es ist wichtig zu wissen, dass Felder, deren Schlüssel mit einem Unterstrich beginnen, als privat betrachtet werden sollten und keine Optionen in der UI der Felder sein werden. Wobei Felder, die nicht mit einem Unterstrich beginnen dort zur Verfügung stehen werden.

Das heißt, dass das Feld in unserem Beispiel oben über die UI der benutzerdefinierten Felder verfügbar sein würden. Wenn du andererseits möchtest, dass die Felder privat sind, würdest du das Feld '_flavor' nennen.

Eine weitere wichtige Sache, die man im Kopf behalten sollte, ist, dass Felder standardmäßig mehr als einen Wert beinhalten können. Der vierte Parameter von add_post_meta() kann auf true gesetzt werden, um so ein eindeutiges Feld zu erstellen, welches nur einen Wert beinhaltet.

Das bedeutet, dass dies:

1
add_post_meta( 12, 'flavor', 'vanilla' );
2
add_post_meta( 12, 'flavor', 'mint' );
3
print_r( get_post_meta( 12, 'flavor' );

ein Array mit den Werten 'vanilla' und 'mint' zurückgeben würde. Andererseits, wenn wir unique auf true setzen, so wie hier, verhindert dies, dass der zweite Wert hinzugefügt wird:

1
add_post_meta( 12, 'flavor', 'vanilla', true );
2
add_post_meta( 12, 'flavor', 'mint', true );
3
print_r( get_post_meta( 12, 'flavor' );

In diesem Fall würde der Rückgabewert nur 'vanilla' sein.

Aktualisieren von Post Meta Werten

Im letzten Beispiel, habe ich dir gezeigt, wie man ein eindeuties Metafeld erstellt, in dem nur ein Wert gespeichert werden kann. Aber was, wenn man den bestehenden Wert ändern will? Dafür würden wir update_post_meta() auf diese Art benutzen:

1
add_post_meta( 12, 'flavor', 'vanilla', true );
2
update_post_meta( 12, 'flavor', 'mint' );
3
print_r( get_post_meta( 12, 'flavor' );

Die Rückgabe davon wäre 'mint'.

Beachte, dass du beiden dieser Funktionen ein Array von Daten übergeben kannst und es wird als ein Datensatz abgelegt. WordPress serialisiert das Array automatisch zu einem String.

Benutzer- und Kommentarmetadaten

Bis hierher haben wir Metadaten für Beiträge behandelt, aber Benutzer und Kommentare haben auch Metadaten. Beide haben ein Equivalent zu add_post_meta() und update_post_meta(), das auf die gleich Weise arbeitet, nur mit den Tabellen des passenden Inhaltstyps.

Zum Beispiel, kannst du add_user_meta() und update_user_meta() auf die exakt gleiche Weise benutzen, wie ich es oben für ihre Beitrags-Equivalenten beschrieben habe, um Benutzer-Metadaten zu ergänzen oder zu aktualisieren. Für Kommentare kannst du add_comment_meta() und update_comment_meta() benutzen.

Fazit

In dieser Reihe habe ich dir eine grundlegende Einleitung gegeben, um Beitragsmetadaten zu ergänzen und zu aktualisieren, indem du das Userinterface für benutzerdefinierte Felder oder die Funktionen, die WordPress zur Verfügung stellt, benutzt. Zusammen mit meiner Reihe zum Arbeiten mit Metadaten solltest du nun über das Wissen verfügen, wie man Beitragsmetadaten hinzufügt und mit ihnen arbeitet.

Was du damit machst, liegt bei dir und das ist eine schöne Sache und die wahre Macht von Wordpress als Content-Management-System.