So erstellen und verwenden Sie benutzerdefinierte WordPress-Felder
Veröffentlicht: 2020-04-23Einer der Hauptvorteile von WordPress ist seine Vielseitigkeit, die dank seiner integrierten Erweiterungsfunktionen möglich ist. Unter den verschiedenen angebotenen Erweiterungsformeln finden wir benutzerdefinierte Felder :
WordPress hat die Möglichkeit, Beitragsautoren zu erlauben, einem Beitrag benutzerdefinierte Felder zuzuweisen. Diese willkürlichen Zusatzinformationen werden als Metadaten bezeichnet.
Metadaten werden mit Schlüssel/Wert-Paaren behandelt. Der Schlüssel ist der Name des Metadatenelements. Der Wert sind die Informationen, die in der Metadatenliste für jeden einzelnen Beitrag erscheinen, dem die Informationen zugeordnet sind.
WordPress.org-Dokumentation
Wenn wir beispielsweise Metadaten zu Konzepten im Zusammenhang mit der Motorwelt erstellen möchten, hätten wir Dinge wie:
- Marke : Ford
- Modell : Fokus
- Farbe : weiß
- Leistung : 110 PS
- etc
Im heutigen Beitrag zeige ich Ihnen, wie Sie benutzerdefinierte Felder erstellen, wie Sie sie verwenden und wie sie Ihnen als WordPress-Benutzer und/oder -Entwickler helfen können. Bitte beachten Sie, dass Sie ein grundlegendes Verständnis für das Programmieren in WordPress haben müssen… aber ich hoffe, Sie können dem Beitrag leicht folgen, insbesondere wenn ich Ihnen zeige, wie Sie ein erstaunliches Plugin für die Arbeit mit benutzerdefinierten Feldern verwenden: Erweiterte benutzerdefinierte Felder.
Wie benutzerdefinierte WordPress-Felder funktionieren
Der beste Weg, um zu verstehen, was benutzerdefinierte Felder sind und wie sie funktionieren, ist ein Blick in die WordPress-Datenbank. Wie Sie vielleicht bereits wissen, wird jedes Mal, wenn Sie einen Beitrag, eine Seite oder (fast) jede andere Art von Inhalt in WordPress erstellen, dieser neue Inhalt in einer Tabelle namens wp_posts gespeichert (das Präfix kann sich ändern).
Tabellen in einer Datenbank sind genau wie jede andere Tabelle, mit der Sie zuvor gearbeitet haben. Grundsätzlich haben sie eine Reihe von Spalten, die definieren, „was Sie speichern können“, und Zeilen mit den spezifischen Informationen. Im Fall von wp_posts sind die Spalten Dinge wie Titel , Inhalt , Autor , Veröffentlichungsdatum und so weiter. Nichts Besonderes, um ehrlich zu sein:

wp_posts Tabelle in einer WordPress-Datenbank.Eines der „Probleme“ bei der Verwendung von Tabellen besteht darin, dass die Informationen, die Sie darin speichern können, auf die Spalten beschränkt sind, die sie haben. Wenn Sie Informationen zu einem neuen Konzept speichern möchten, können Sie das nicht. Wie können Sie also benutzerdefinierte Felder erstellen, wenn die Tabelle bereits festgelegt ist? Nun, ganz einfach, Sie brauchen nur einen neuen Tisch, der dafür entworfen wurde.
In jeder WordPress-Datenbank gibt es eine weitere Tabelle namens wp_postmeta wie die folgende:

wp_postmeta Tabelle in der WordPress-Datenbank. Wie Sie im vorherigen Screenshot sehen können, ist die Metadatentabelle so konzipiert, dass wir Schlüssel/Wert-Paare mithilfe der meta_key und meta_value und jedes Paar mithilfe der Spalte post_id einem bestimmten Inhalt zuordnen können. Leicht genug!
Schauen wir uns also genauer an, wie wir mit dieser Tabelle arbeiten können!
So erstellen Sie ein neues benutzerdefiniertes Feld
Wie wir bereits gesehen haben, sind benutzerdefinierte Felder immer mit einem bestimmten Beitrag verknüpft. Daher würden Sie im Editor eine Art Benutzeroberfläche erwarten, um sie zu bearbeiten, oder? Wenn Sie sich Gutenberg ansehen, gibt es leider keine…
Um benutzerdefinierte Felder im WordPress-Editor zu bearbeiten, müssen Sie ein erweitertes Bedienfeld aktivieren. Klicken Sie einfach auf das Symbol oben rechts im Editor und dann auf Optionen :

Dies öffnet ein neues Fenster mit den verschiedenen Panels, die in Gutenberg verfügbar sind. Suchen Sie eines mit dem Namen Benutzerdefinierte Felder und aktivieren Sie es:

Nach der Aktivierung können Sie die benutzerdefinierten Felder Ihres Beitrags ganz einfach erstellen und bearbeiten:

Diese einfache Schnittstelle ermöglicht es uns, so viele Schlüssel/Wert-Paare zu erstellen, wie wir wollen. Im obigen Screenshot sehen Sie beispielsweise, wie ich einige der Felder hinzugefügt habe, die ich am Anfang dieses Beitrags vorgestellt habe: nelio_brand , nelio_model , nelio_color und nelio_hp .

So verwenden Sie ein benutzerdefiniertes Feld
Um ein benutzerdefiniertes Feld zu verwenden, benötigen Sie drei Dinge: (a) die Kennung eines Beitrags, (b) den Namen des Felds, das Sie verwenden möchten, und (c) die Entscheidung, wo Sie es verwenden möchten. Angenommen, ich möchte das Feld nelio_brand , das wir im obigen Beispiel erstellt haben, am Ende eines Beitrags anzeigen. Um seinen Wert abzurufen, gibt es eine Funktion namens get_post_meta , die wir wie folgt verwenden können:
function nelio_add_brand_field( $content ) { $brand = get_post_meta( get_the_ID(), 'nelio_brand', true ); return "{$content}\n<p><strong>Brand:<strong> {$brand}</p>"; } add_filter( 'the_content', 'nelio_add_brand_field' );Beachten Sie, dass wir im vorherigen Beispiel die drei Dinge ansprechen, die ich zuvor erwähnt habe:
- Der erste Parameter von
get_post_metaist genau die Kennung des Posts, an dem ich interessiert bin. In diesem Fall verwenden wirget_the_ID(), das die ID des aktuellen Posts zurückgibt. - Der zweite Parameter ist der Name unseres Metafelds (in diesem Fall
nelio_brand). - Schließlich verwenden wir das Meta-Feld im Frontend als etwas, das wir ganz am Ende des Inhalts des Beitrags anzeigen möchten. Und Sie können es erkennen, weil ich es während des Filters
the_contentund verwende.
Das Ergebnis davon ähnelt dem, was Sie im folgenden Screenshot sehen können:

Aber das ist natürlich nur ein Beispiel! Sie können benutzerdefinierte Felder auf viele andere Arten verwenden, als „etwas im Frontend zu drucken“. Zum Beispiel ist Nelio A/B Testing eines der Plugins, die wir erstellt haben, und es wurde entwickelt, um Split-Tests auf einer WordPress-Site durchzuführen. Für einen A/B-Test müssen alternative Inhalte erstellt werden, und unser Plugin verwendet benutzerdefinierte Felder, um alternative Inhalte als solche zu kennzeichnen, und begrenzt, wie und wann diese Inhalte für einen Besucher zugänglich sind.
WordPress-Funktionen zum Verwalten benutzerdefinierter Felder
So wie wir eine Methode zum Abrufen des Werts eines benutzerdefinierten Felds ( get_post_meta ) haben, verfügt WordPress über zusätzliche Methoden zum programmgesteuerten Erstellen, Aktualisieren und Löschen von benutzerdefinierten Feldern: add_post_meta , update_post_meta und delete_post_meta . Diese Funktionen funktionieren wie erwartet, also werde ich Sie nicht mit weiteren Erklärungen belästigen …
Was ist und wie werden erweiterte benutzerdefinierte Felder verwendet?
Jetzt, da Sie wissen, wie benutzerdefinierte Felder in WordPress funktionieren, kann ich Ihnen, glaube ich, bereits die gute Nachricht überbringen: Es gibt mehrere Plugins, die die Arbeit mit benutzerdefinierten Feldern erheblich vereinfachen!
Eines der bekanntesten und am besten bewerteten Plugins zum Erstellen von Metadaten auf einer WordPress-Seite ist Advanced Custom Fields. Damit können Sie nicht nur benutzerdefinierte Felder einfacher definieren, sondern haben auch die Möglichkeit, sich über eine verbesserte Benutzeroberfläche für den Umgang mit diesen Feldern zu freuen. Diese Schnittstelle stellt sicher, dass die von Ihnen festgelegten Werte sinnvoll und semantisch aussagekräftig sind: Daten, Bilder, Galerien, Bereiche, Zahlen … Sie nennen es!

Wenn Sie mehr über ACF erfahren möchten, gibt es viele Ressourcen da draußen. Aber ich denke, dieser Vortrag von Jo Minney kann Ihnen wirklich den Einstieg erleichtern:
Hoffentlich hilft Ihnen diese kleine Einführung in benutzerdefinierte Felder auf Ihrem Weg, ein besserer WordPress-Entwickler zu werden!
Beitragsbild von Polina Rytova auf Unsplash.
