Grundlegendes zur benutzerdefinierten WordPress-Meta-Box
Im vorherigen Beitrag haben wir über das benutzerdefinierte WordPress-Feld gesprochen, in dem Sie einen neuen Eintrag in einem Beitrag hinzufügen und ausgeben können, indem Sie das Feld "Benutzerdefiniertes Feld" verwenden, das WordPress im Nachbearbeitungsbildschirm bietet. Wenn Sie jedoch nicht mit der benutzerdefinierten Feldbox vertraut sind (wir haben alle unsere individuellen Vorlieben), haben Sie eine Alternative: Sie können eine Meta-Box erstellen.
Eine Meta-Box ist ein individuelle Box dass wir auf eigene Faust schaffen enthalten Eingaben oder andere interaktive Benutzeroberflächen, um neue Einträge hinzuzufügen von Beiträgen oder Seiten. Sie können das Meta-Feld anstelle des Felds Benutzerdefiniertes Feld verwenden, um dasselbe zu tun. Mal sehen, wie man einen erstellt.
Mehr auf Hongkiat.com:
- Anpassen des Medien-Upload-Verzeichnisses in WordPress
- Anpassen von WordPress-Editorstilen
- Anpassen “Hallo” In der WordPress-Adminleiste
- Registrieren Sie eine benutzerdefinierte Taxonomie für WordPress-Benutzer
- Symbole im WordPress-Menü anzeigen
Erstellen einer Meta-Box
WordPress stellt eine API-Funktion bereit, die aufgerufen wird add_meta_box
, So können wir sofort eine Meta-Box erstellen. Dies ist es in seiner äußersten Grundform.
Funktion add_post_reference () add_meta_box ('post-reference', 'Reference', 'referenceCallBack', 'post'); add_action ('add_meta_boxes', 'add_post_reference'); Funktion referenceCallBack () echo 'Hello World'
Das add_meta_box
Es gibt vier Parameter: die ID, den Titel der Meta-Box, eine Rückruffunktion, die "Hello World" aufruft, und den Post-Typ, den wir anzeigen möchten. In diesem Fall weisen wir auf einer Nachbearbeitungsseite eine neue Meta-Box zu (dies funktioniert auch mit Seiten)..
Im Nachbearbeitungsbereich finden Sie eine neue Box wie folgt.
Die neue Meta-Box wird, wie Sie oben sehen können, unter dem WYSIWYG-Editor angezeigt. Wenn Sie es in die Sidebar einfügen möchten, können Sie "side" nach dem post-Parameter hinzufügen und zusammen mit "high", wenn Sie es ganz oben in der Sidebar platzieren möchten.
Funktion add_post_reference () add_meta_box ('post-reference', 'Reference', 'referenceCallBack', 'post', 'side', 'high'); add_action ('add_meta_boxes', 'add_post_reference');
Sie werden es jetzt über dem finden Veröffentlichen Box…
Jetzt den 'Hello World' Text dort ersetzen. Fügen wir Elemente wie ein Eingabefeld für einen neuen Eintrag hinzu.
In diesem Beispiel fügen wir zwei Eingabefelder hinzu, die aus einem zum Hinzufügen des Referenznamens und eines für den Referenzlink bestehen:
function referenceCallBack ($ post) wp_nonce_field ('reference_meta_box', 'reference_nonce'); $ name_value = get_post_meta ($ post-> ID, '_post_referenz_name', true); $ link_value = get_post_meta ($ post-> ID, '_post_reference_link', true); Echo ''; Echo ''; Echo ''. 'Fügen Sie den Namen der Referenz hinzu'. '
'; Echo ''; Echo ''; Echo ''. 'Fügen Sie den Link der Referenz hinzu'. '
';
Aktualisieren Sie die Nachbearbeitungsseite. Diese beiden Eingaben sollten hinzugefügt werden.
Das $ name_value
und $ link_value
Die Variable ruft die Einträge aus der Datenbank ab und füllt sie in die Eingabefelder. Um die Einträge in die Datenbank zu bekommen, müssen wir dafür eine Funktion erstellen.
Wir müssen ein paar Codezeilen hinzufügen, die die durch diese Eingabe hinzugefügten Einträge sicher in die Datenbank einfügen. “Sicher” hier ist ein legitimer und autorisierter Eintrag gemeint (nicht der von Hackern oder anderen nicht autorisierten Mitarbeitern). Um den Eintrag zu speichern, müssen Sie eine neue Funktion erstellen. Nennen wir die Funktion: save_post_reference
, wie so.
Funktion save_post_reference ($ post_id) add_action ('save_post', 'save_post_reference');
Wie bereits erwähnt, müssen wir aus Sicherheitsgründen einige Dinge überprüfen:
(1) Wir müssen überprüfen, ob der Benutzer hat die Fähigkeit, einen Beitrag zu bearbeiten.
if (! current_user_can ('edit_post', $ post_id)) return;
(2) Wir müssen auch Prüfen Sie, ob das Nonce eingestellt ist.
if (! isset ($ _POST ['reference_nonce']))) return; if (! wp_verify_nonce ($ _POST ['reference_nonce'], 'reference_meta_box')) return;
(3) Dann müssen wir verhindern, dass die Daten automatisch gespeichert werden. Das Speichern kann nur einmal durchgeführt werden “sparen” oder “Aktualisieren” Schaltfläche wurde angeklickt.
if (definiert ('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
(4) Wir müssen auch sicherstellen, dass unsere zwei Eingaben, post_referenzname
und post_reference_link
, sind eingestellt und bereit, bevor wir die Einträge absenden.
if (! isset ($ _POST ['post_referenz_name']) ||! isset ($ _POST ['post_reference_link'])) return;
(5) Der Eintrag sollte keine unerwarteten Zeichen enthalten, die die Sicherheit der Website beeinträchtigen könnten. Um dies zu überprüfen, können Sie die integrierte WordPress-Funktion verwenden sanitize_text_field
.
$ reference_name = sanitize_text_field ($ _POST ['post_reference_name']); $ reference_link = sanitize_text_field ($ _POST ['post_reference_link']);
Okay, jetzt können wir die Einträge in der Datenbank speichern:
update_post_meta ($ post_id, '_post_referenz_name', $ referenzname); update_post_meta ($ post_id, '_post_reference_link', $ reference_link);
Jetzt können Sie es ausprobieren: Geben Sie etwas Inhalt in die Eingabefelder ein und klicken Sie auf “Aktualisieren” Taste, um sie zu speichern.
Fazit
Wir haben gerade eine Meta-Box erstellt, die aus zwei Eingaben besteht. Sie können die Box um weitere Eingabetypen erweitern, z. B. das Optionsfeld oder die Auswahlbox. Dieses Beispiel mag sehr einfach sein, aber wenn Sie einmal den Dreh raus haben, können Sie diese Meta-Box für viel kompliziertere Zwecke verwenden. Teilen Sie uns mit, ob Sie dies verwenden und wofür Sie es verwenden werden.