Die remove_meta_box()
-Funktion ermöglicht es Plugin-Entwickler Bereiche aus den Seiten-, Artikel und Link-Seiten im Administratiosnbereich zu entfernen. Diese Funktion wurde in WordPress 2.6 eingeführt.
Wenn du beispielsweise eine Website für deinen Kunden baust oder du für deinen eigenen Blog einige Meta-Boxen nicht brauchst, kannst du durch die remove_meta_box()
-Funktion die Oberfläche etwas aufräumen.
Vewendung
<?php remove_meta_box( $id, $page, $context ); ?>
Parameter
$id
(string) HTML-‚id‘-Attribute zum Entfernen von Meta-Boxen. Hier sind einige verfügbare Metabox ‚id‘-Attribute:
- ‚commentsdiv‘ – Diskussion Metabox.
- ’slugdiv‘ – Slug.
- ‚revisionsdiv‘ – Revisionen.
- ‚authordiv‘ – Autor.
- ‚postcustom‘ – Benutzerdefinierte Felder.
- ‚postexcerpt‘ – Auszug.
- ‚trackbacksdiv‘ – Trackbacks.
- ‚postimagediv‘ – Artikelbild.
- ‚formatdiv‘ – Formate.
- ‚tagsdiv-post_tag‘ – Tags.
- ‚categorydiv‘ -Kategorien.
$page
(string) Zum Entfernen von Metaboxen bei 'Artikel', 'Seite', oder 'Link' oder andere eingebundene Benutzerdefinierte Felder wie 'Events'
$context
(string) Normal, Erweitert, oder von der Seite
Beispiel 1: Metabox für Kommentare entfernen
Die folgenden beiden Beispiele zeigen Dir, wie du die Meta-Box für Kommentare auf der Bearbeitungsseite für Artikel und für Seite entfernst.
Der folgende Code wird in die Datei functions.php
eingepflegt.
- Pfad:
dein-wordpress/wp-content/themes/dein-theme/functions.php
Bearbeitungsseite für Artikel
Meta-Box für Kommentare auf der Bearbeitungsseite für Artikel entfernen:
//remove post meta box function remove_post_custom_fields() { remove_meta_box('commentsdiv','post','normal'); } add_action('admin_menu','remove_post_custom_fields');
Bearbeitungsseite für Seite
2. Meta-Box für Kommentare auf der Bearbeitungsseite für Seiten entfernen:
//remove page meta box function remove_page_excerpt_field() { remove_meta_box('commentsdiv','page','normal'); } add_action('admin_menu','remove_page_excerpt_field');
Beispiel 2: Mehrere Metaboxen aus der Bearbeitungseite für Artikel entfernen
Füge folgenden Code in die functions.php
ein, wenn du Die Meta-Box für Kommentare, Benutzerdefinierte Felder, Trackbacks, Autor und Revisionen aus der Bearbeitungseite für Artikel entfernen möchtest.
//remove post meta box function remove_post_custom_fields() { remove_meta_box('commentsdiv','post','normal'); remove_meta_box('postcustom','post','normal'); remove_meta_box('trackbacksdiv','post','normal'); remove_meta_box('authordiv','post','normal'); remove_meta_box('revisionsdiv','post','normal'); } add_action('admin_menu','remove_post_custom_fields');
Für das Entfernen mehrerer Metaboxen für Seiten wird dementsprechend verfahren.
Hallo Jonathan,
ich möchte gern eine Meta-Box für alle Nicht-Administratoren entfernen. Die „Besonderheit“ bei mir dabei: Die Meta-Box (id: elc_metabox Position: Side) wird durch ein Plugin erzeugt. Hatte jetzt versucht, einfach folgenden Code in die functions.php des Themes einzufügen:
Die Benutzerdefinierten Felder werden prima rausgenommen für die Nicht-Admins, nur die „elc_metabox“ nicht. Es liegt wohl daran, dass zum Zeitpunkt des Aufrufs die meta-Box noch gar nicht erzeugt wurde, kann das sein? Die Problematik wird glaube auch in der Referenz-Übersicht von WP angesprochen (http://codex.wordpress.org/Function_Reference/remove_meta_box), ich weiß aber nicht, wie ich das wirklich lösen kann :-( Hast du ne Idee?
Freu mich über deine Antwort.
Danke.
Nachtrag: Es hat jetzt bei mir Klick gemacht, musste den action hook add_meta_boxes nehmen, der aufgerufen wird nachdem alle meta-Boxen fertig geladen sind. Code sieht also so aus:
Kannst du ja in deinem Artikel hier ergänzen bzw. auf die Problematik hinweisen ;-)