Heim > CMS-Tutorial > WordDrücken Sie > Hinzufügen von Metaboxen zum Posten von Typen in WordPress

Hinzufügen von Metaboxen zum Posten von Typen in WordPress

Jennifer Aniston
Freigeben: 2025-02-10 10:34:09
Original
689 Leute haben es durchsucht

Adding Meta Boxes to Post Types in WordPress

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

  • Verwenden Sie die Funktion 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.
  • Das Metabox kann auf einen bestimmten Artikeltyp beschränkt werden, indem der Namen des Artikeltyps an den Action -Hook 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.
  • Die Funktion
  • 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

hinzu

Narayan 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' );
Nach dem Login kopieren
Nach dem Login kopieren

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' );
Nach dem Login kopieren
Nach dem Login kopieren

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' );
Nach dem Login kopieren
Nach dem Login kopieren

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' );
Nach dem Login kopieren
Nach dem Login kopieren

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' );
Nach dem Login kopieren
Nach dem Login kopieren
Die Funktion

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' );
Nach dem Login kopieren
Nach dem Login kopieren

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' );
Nach dem Login kopieren
Nach dem Login kopieren

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' );
Nach dem Login kopieren
Nach dem Login kopieren

Adding Meta Boxes to Post Types in WordPress 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' );
Nach dem Login kopieren
Nach dem Login kopieren

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' );
Nach dem Login kopieren
Nach dem Login kopieren

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.

Adding Meta Boxes to Post Types in WordPress

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage