Kuratierte Linksammlung für Webdesigner und -entwickler.
Metaboxen aus Adminbereich entfernen

WordPress: Meta-Box entfernen

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.

Anzeige

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.

Frischer Input für Designer. Jeder Abonnent erhält das kostenlose Bundle aus 50 Photoshop Device-Mockups und 40 Responsive WordPress-Themes.

1x pro Woche. Kein Spam. Jederzeit kündbar.
Jonathan Torke
Jonathan Torke

Auf pixeltuner.de teile ich aktuelle Ressourcen für Webdesigner und -entwickler. Du findest mich auch auf deviantART und Instagram.
PayPal-Kaffeespende.

2 Antworten auf "WordPress: Meta-Box entfernen"
  • Avatar
    Christian:

    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:

    if (is_admin()) :
    function my_remove_meta_boxes() {
     if(!current_user_can('administrator')) {
      remove_meta_box('postcustom', 'post', 'normal');
      remove_meta_box('elc_metabox', 'post', 'side');
     }
    }
    add_action( 'admin_menu', 'my_remove_meta_boxes' );
    endif;
    

    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.

  • Avatar
    Christian:

    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:

    add_filter('add_meta_boxes', 'hide_meta_boxes');
    
    function hide_meta_boxes() {
     if (!(current_user_can('administrator'))) {		
      remove_meta_box('postcustom', 'post', 'normal');
      remove_meta_box('elc_metabox', 'post', 'side');
        }	
    }
    

    Kannst du ja in deinem Artikel hier ergänzen bzw. auf die Problematik hinweisen ;-)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Verpasse keine News!

Du erhältst ein kostenloses Bundle aus 50+ WordPress-Themes und PSD Device-Mockups.

1x pro Woche. Jederzeit kündbar.
Anzeige