WordPress -Website Builder oder Entwickler verwenden häufig Metaboxen. Dieser Artikel wird in die Assoziation und Integration von Metaboxen mit benutzerdefinierten Artikeltypen und zur Verwendung von Daten eingehen, die im WordPress Front-End mithilfe von Metaboxen gespeichert sind.
Kernpunkte
add_meta_box()
(montieren Sie dies für add_meta_boxes
), um eine beliebige Bearbeitungsschnittstelle vom Artikeltyp hinzuzufügen. Diese Funktion kann verwendet werden, um mehrere Artikeltypen (wie Artikel, Seiten und benutzerdefinierte Artikelstypen "Bücher") oder zu allen vorhandenen und zukünftigen Artikelsartypen Metaboxen hinzuzufügen. add_meta_boxes
angeht. Die register_post_type()
-Funktion wird verwendet, um den Artikeltyp anzupassen, und sein Parameter -Array enthält register_meta_box_cb
, dessen Wert die Rückruffunktion ist, die beim Einstellen des Metaboxs aufgerufen wird. global_notice_meta_box_callback
enthält die Formfelder des Metaboxen. save_post
Aktionshaken verarbeiten Daten, die in Textbereichen gespeichert sind, wenn sie Artikel als Entwürfe oder Veröffentlichungen speichern. Diese Daten können effektiv verwendet werden, indem die in das Meta -Feld eingegebenen Daten angezeigt werden, bevor der entsprechende Artikelinhalt gespeichert wird. Fügen Sie das Metabox zum Artikeltyp -Bildschirm
hinzuNarayan Prusty hat die meisten, wenn nicht alle PHP -Funktionen, Parameter und Action -Hooks abgedeckt, die Metaboxen erzeugen.
Um jedem Artikel zum Bearbeiten von Artikeln ein Metabox hinzuzufügen, können Sie die Funktion add_meta_box()
verwenden und an die Aktion add_meta_boxes
anhängen.
Der folgende Code fügt den Artikel zur Bearbeitung des Artikels hinzu. Beachten Sie die Funktion global_notice_meta_box_callback
, die zum Anzeigen von Formularfeldern im Metabox verwendet wird. Wir werden es später ausführlich vorstellen.
function global_notice_meta_box() { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback', 'post' ); } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
Erstellen Sie einen Artikel -Typ -Array, erstellen Sie einen Artikel -Typ -Array, durch das Array und fügen Sie diese Beiträge mit add_meta_box()
im Typ.
function global_notice_meta_box() { $screens = array( 'post', 'page', 'book' ); foreach ( $screens as $screen ) { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback', $screen ); } } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
Um allen vorhandenen und zukünftigen Artikeltypen ein Metabox hinzuzufügen, verwenden Sie get_post_types()
, um das Artikeltyp -Array abzurufen und den obigen $screen
-Wary durch sie zu ersetzen.
function global_notice_meta_box() { $screens = get_post_types(); foreach ( $screens as $screen ) { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback', $screen ); } } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
metabox kann auch zu allen vorhandenen und neuen Postypen hinzugefügt werden, indem der dritte ($screen
) Parameter weggelassen wird:
function global_notice_meta_box() { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback' ); } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
Sie können das Metabox auch auf einen bestimmten Artikeltyp beschränken, indem Sie den Namen des Artikeltyps (in diesem Fall "Buch") an den Action -Hook add_meta_boxes
anhängen:
function global_notice_meta_box() { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback' ); } add_action( 'add_meta_boxes_book', 'global_notice_meta_box' );
register_post_type()
wird verwendet, um den Artikeltyp anzupassen, und sein Parameter -Array enthält register_meta_box_cb
, und der Wert ist die Rückruffunktion, die beim Einstellen des Metaboxen bezeichnet wird.
Angenommen, wir erstellen einen benutzerdefinierten Artikel -Typ mit dem Namen "Buch" mit dem folgenden Code:
function global_notice_meta_box() { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback', 'post' ); } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
Hinzufügen der Funktionsdefinition global_notice_meta_box
in der Funktion register_meta_box_cb
php (der Wert von add_meta_box()
oben) fügt den Metabox zum Bearbeitungsbildschirm des benutzerdefinierten Artikel -Typs "Buch" hinzu.
Dies ist wieder unser Beispiel global_notice_meta_box
-Funktion.
function global_notice_meta_box() { $screens = array( 'post', 'page', 'book' ); foreach ( $screens as $screen ) { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback', $screen ); } } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
Bisher haben wir verschiedene Möglichkeiten gelernt, Metaboxe in WordPress zu registrieren oder hinzuzufügen. Wir müssen auch die global_notice_meta_box_callback
-Funktion erstellen, die die Formfelder unserer Metabox enthält.
Folgendes ist der Code für die global_notice_meta_box_callback
-Funktion, die ein Textbereichsfeld im Metabox enthält.
function global_notice_meta_box() { $screens = get_post_types(); foreach ( $screens as $screen ) { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback', $screen ); } } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
save_post
Aktionshaken verarbeiten Daten, die in Textbereichen gespeichert sind, wenn Artikel als Entwürfe oder Veröffentlichungen gespeichert werden.
function global_notice_meta_box() { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback' ); } add_action( 'add_meta_boxes', 'global_notice_meta_box' );
Um die im Textbereich des Metabox eingegebenen Daten zu verwenden, werden die Daten angezeigt, bevor sie angezeigt werden, um den entsprechenden Artikelinhalt zu speichern.
function global_notice_meta_box() { add_meta_box( 'global-notice', __( '全局公告', 'sitepoint' ), 'global_notice_meta_box_callback' ); } add_action( 'add_meta_boxes_book', 'global_notice_meta_box' );
Code Erläuterung
Erstens erstellen wir eine global_notice_before_post
-Funktion und hängen sie mit einem the_content
-Parameter mit einem $content
-Filter an, der den Artikelinhalt enthält.
Innerhalb der Funktion schließen wir die globale $post
Variable ein, die das WP_POST -Objekt des derzeit angezeigten Artikels enthält.
Globale Ankündigungen abrufen, die für einen bestimmten Artikel von get_post_meta
gespeichert sind, und sie auf der $global_notice
Variablen speichern.
Wickeln Sie die Ankündigung in eine DIV ein und speichern Sie sie in der Variablen $notice
.
verbinden Sie schließlich die $notice
mit der globalen Ankündigung mit dem $content
mit dem tatsächlichen Artikelinhalt.
Folgendes ist ein Screenshot des Artikels mit der globalen Ankündigung vor dem Artikelinhalt.
Zusammenfassung
In diesem Tutorial haben wir eine Vielzahl von Möglichkeiten gelernt, Metaboxen in WordPress -Management -Bildschirmen zu registrieren und sie auf Artikeltypen zu beschränken.
Wir haben auch überprüft, wie Sie dem Metabox Formfelder hinzufügen und Eingabedaten beim Speichern oder Veröffentlichen eines Artikels speichern können.
Schließlich stellen wir vor, wie die Daten in die Metabox in die Praxis umsetzen können.
In zukünftigen Artikeln werden wir dem Bildungsbildschirm des Artikeltypmanagements Kontexthilfe hinzufügen.
Wenn Sie Fragen oder Vorschläge haben, können Sie sie in den Kommentaren gerne fragen.
FAQs zum Hinzufügen von Metaboxen zu Artikeltypen in WordPress
Was ist ein Metabox in WordPress? Metaboxe in WordPress sind draggierbare Felder, die in der Admin -Schnittstelle angezeigt werden. Diese Boxen werden verwendet, um zusätzliche Eingabefelder anzuzeigen, sodass Benutzer die Funktionalität und das Layout verschiedener Artikeltypen anpassen können. Sie können zu Artikeln, Seiten und benutzerdefinierten Post -Typen hinzugefügt werden. Metaboxen können verschiedene Arten von Feldern enthalten, einschließlich Text, Kontrollkästchen, Auswahloptionen und mehr.
Wie füge ich benutzerdefinierte Post -Typen in WordPress Metaboxe hinzu? Um einem benutzerdefinierten Beitragstyp in WordPress ein Metabox hinzuzufügen, müssen Sie die Funktion add_meta_box()
verwenden. Mit dieser Funktion können Sie die Metabox -ID, den Titel, die Rückruffunktion, den Artikeltyp, die Kontext und die Priorität angeben. Die Rückruffunktion wird verwendet, um den Inhalt der Metabox auszugeben.
Kann ich einem einzelnen Artikeltyp mehrere Metaboxe hinzufügen? Ja. Jedes Metabox sollte eine einzigartige ID haben, um Konflikte zu vermeiden. Sie können die add_meta_box()
-Funktion mehrmals verwenden und verschiedene Parameter zum Hinzufügen mehrerer Metaboxen verwenden.
Wie speichern Sie Daten, die in das Feld Metabox eingegeben wurden? Um Daten zu speichern, die in das Feld metabox eingegeben wurden, müssen Sie eine Funktion an die save_post
Aktion anhängen. Diese Funktion sollte Nonce überprüfen, die Berechtigungen des aktuellen Benutzers überprüfen und dann die Funktionen update_post_meta()
oder add_post_meta()
verwenden, um die Metaboxdaten in der Datenbank zu speichern.
Wie zeigt ich Metaboxdaten am vorderen Ende an? Um Metaboxdaten im vorderen Ende anzuzeigen, können Sie die Funktion get_post_meta()
in der Schleife verwenden. Diese Funktion ruft Metaboxdaten aus der Datenbank ab und gibt sie als Zeichenfolge zurück, die Sie dann in der Vorlagendatei ausgeben können.
Kann ich der Seite und dem Artikel Metaboxen hinzufügen? Ja. Bei Verwendung der Funktion add_meta_box()
können Sie den Artikeltyp als "Seite" angeben, um der Seite eine Metabox hinzuzufügen.
Wie löscht ich Metaboxe aus Artikeltypen? Die remove_meta_box()
-Funktion kann verwendet werden. Diese Funktion erfordert die Metabox -ID und den Artikeltyp als Parameter.
Kann ich die Position des Metaboxen im Artikel zur Bearbeitung des Artikels anpassen? Ja. Der add_meta_box()
-Parameter der context
-Funktion bestimmt die Position des Metaboxen. Mögliche Werte sind "normal", "Seite" und "fortgeschritten".
Kann ich einem vom Plugin erstellten benutzerdefinierten Beitragstyp einen Metabox hinzufügen? Ja. Sie müssen nur die Schnecke für den benutzerdefinierten Artikeltyp kennen und als add_meta_box()
Parameter in der Funktion post_type
verwenden.
Wie kann man Metaboxen und ihre Felder stylen? Sie können CSS verwenden, um Metaboxen und ihre Felder zu stylen. Der Metabox verfügt über eine "Postbox" -Klasse, in der Sie den Feldern im Metabox Ihre eigene Klasse hinzufügen können. Sie können diese Klassen dann in CSS finden, um Stile anzuwenden.
Das obige ist der detaillierte Inhalt vonHinzufügen von Metaboxen zum Posten von Typen in WordPress. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!