Benutzerdefinierte Eingabefelder in der Administration – benutzerdefinierte Metaboxen

Vor einigen Tagen hatten wir ein weiteres Treffen von WordPress-Enthusiasten – Entwicklern in Košice . Wir haben uns im Halmi Caffe getroffen, diesmal auch zum Thema „Custom Metaboxen“.

Wir haben uns drei Möglichkeiten angesehen, eigene Eingabefelder in der WP-Administration zu erstellen und während der Diskussion einige unserer eigenen Erfahrungen, Typen und Generatoren hinzugefügt. Wir begannen mit der Verwendung klassischer WordPress-Funktionen und einer Beschreibung in der Dokumentation, fuhren mit Demonstrationen basierend auf den Advanced Custom Fields und CMB2-Plugins fort. Ein paar Quellcodes am Ende des Artikels 😉

Diese Eingabefelder können für spezielle Werte verwendet werden, die wir auf der Seite, im Artikel, Profil, Produkt usw. verarbeiten und anzeigen möchten.

Laut WordPress-Dokumentation

Im Kern verfügt WordPress über großartige Funktionen, die es uns ermöglichen, es nach unseren Wünschen anzupassen. Eine davon ist add_meta_box() , mit der wir unser eigenes Eingabefeld erstellen.

add_meta_box()

Anhand der eingegebenen Parameter können wir festlegen, in welchem Teil der Beitragsbearbeitung sich das Eingabefeld befinden soll und auch für welche Art des Beitrags es verwendet wird (Artikel, Seite, Profil ..). Die Funktion erstellt jedoch nur ein Feld für uns. Sie müssen seinen Wert dennoch jedes Mal speichern, wenn Sie den Beitrag speichern und ihn laden, wenn Sie versuchen, ihn zu bearbeiten. Inspiriert waren wir von der umfassenden Lösung, die wir in den Kommentaren unter der Dokumentation gefunden haben.

Der Wert dieses Eingabefeldes wird in der Datenbank in der Tabelle postmeta ( bzw für einen Beitrag).

Zur Weiterverarbeitung oder direkten Anzeige des Wertes auf der Seite holen wir diesen Wert mit der Funktion get_post_meta() aus der Datenbank.

get_post_meta()

Konkret zum Beispiel wie folgt:

<?php echo get_post_meta( get_the_ID(), '_my_meta_value_key', true ); ?>

Beispielergebnis pro Seite:

 

Verwenden des Plugins für erweiterte benutzerdefinierte Felder

Dieses Plugin hat den Vorteil, dass es möglich ist, die Eingabefelder in seiner Oberfläche buchstäblich anzuklicken.

Advanced Custom Fields

Ein weiterer Vorteil ist die umfangreiche Dokumentation und ohne langwierige Programmierung können wir Eingabefelder für Galerie, Karte, Datum und Uhrzeit etc. erstellen.

Allerdings übertreibt es etwas in der Datenbank. Indem es darin zuerst die Eingabefelder definiert, speichert es diese als Beiträge (in der Beitragstabelle ) und speichert dann die Werte (z. Beim Speichern von Seitenänderungen hat es uns zwei weitere Zeilen in der Datenbank für ein Eingabefeld gespart. Als die Revision automatisch gespeichert wurde, gab es noch zwei weitere.

Wir verwenden dann nicht die klassische WP-Funktion (get_post_meta) um den Wert anzuzeigen, sondern die Plugin-Funktion zum Beispiel:

<?php the_field('acf1'); ?>

Laut Dokumentation können wir auch Shortcode verwenden und Werte im Text des Artikels anzeigen.

Verwenden des CMB2-Plugins

Dieses Plugin hat keine „Klick“-Einstellungen mehr, wie wir es gewohnt sind.

CMB2

Es enthält vorgefertigte Klassen und Objekte, mit denen benutzerdefinierte Eingabefelder erstellt werden können, die das Schreiben erheblich erleichtern. Wir finden eine umfangreiche Dokumentation dazu, und wie ACF erleichtert es das Erstellen von Feldern für verschiedene Arten von Werten (Datum, Uhrzeit, Farbe usw.).

Ich möchte auf die Möglichkeit hinweisen, in Kombination mit einem Repeater (Gruppe) einen weiteren Texteditor hinzuzufügen, damit wir Textteile auf der Seite unterscheiden, später deren Reihenfolge ändern können und dergleichen. Andere frei verfügbare Erweiterungen für dieses Plugin sind ebenfalls verfügbar.

Es speichert Werte über eine Zeile in der Datenbank und nutzt die klassische WP-Funktion für deren Verarbeitung (Beispiel):

<?php echo get_post_meta( get_the_ID(), '_yourprefix_text', true ); ?>

Generatoren

 

Dies sind einige der Generatoren, die auf dem Treffen erwähnt wurden. Sie generieren Code, der mit grundlegenden WP-Funktionen funktioniert, ohne zusätzliche Plugins.

Codebeispiel für Meetupe

Pakete beinhalten:

  • Plugin, in dem Beispiele für klassische WP-Funktionen und die Verwendung von CMB2 enthalten sind (für die korrekte Funktionalität benötigt es aktiviertes CMB2-Plugin)
    • einfach das Plugin aktivieren und die neuen Eingabefelder erscheinen in der Seitenbearbeitung
  • „Test“-Theme, ein abgeleitetes Twentyfifteen-Theme (für den ordnungsgemäßen Betrieb muss das Twentyfifteen -Theme installiert sein)
    • enthält šablóny mit Codes zur Anzeige gespeicherter Werte

test-template.zip

Funktionen-Erweiterungen.zip

 

 

War dieser Artikel hilfreich für Sie? Unterstützen Sie mich bitte durch Teilen. 👍
WordPress Návod v PDF

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein