Zum Inhalt springen
Startseite » WP Snippets » Für Abonnenten im Dashboard nur das Profil anzeigen

Für Abonnenten im Dashboard nur das Profil anzeigen

Um bestimmte Bildschirm-Elemente im WordPress-Dashboard auszublenden, kannst du benutzerdefinierte Funktionen verwenden, die auf spezifische Dashboard-Widgets und Meta-Boxen abzielen. Dies ermöglicht es, das Dashboard für Benutzer sauber und übersichtlich zu halten und unnötige Elemente zu entfernen.

Schritt-für-Schritt-Anleitung

  1. Entferne Dashboard-Widgets: Verwende den Hook wp_dashboard_setup, um Dashboard-Widgets zu entfernen.
  2. Entferne Meta-Boxen auf bestimmten Seiten: Verwende den Hook add_meta_boxes, um Meta-Boxen aus den Editoren (z. B. Beiträge, Seiten) zu entfernen.
  3. Verwende Benutzerrollen-Überprüfungen, um spezifische Anpassungen je nach Benutzerrolle vorzunehmen.

Beispielcode zur Umsetzung

Füge den folgenden Code in die functions.php-Datei deines WordPress-Themes oder in ein benutzerdefiniertes Plugin ein:

// Funktion zum Entfernen von Dashboard-Widgets
function remove_dashboard_widgets() {
    // Nur für Abonnenten
    if (current_user_can('subscriber')) {
        // Entferne das "Willkommen"-Panel
        remove_action('welcome_panel', 'wp_welcome_panel');
        
        // Entferne das "Schneller Entwurf"-Widget
        remove_meta_box('dashboard_quick_press', 'dashboard', 'side');
        
        // Entferne das "Aktivitäten"-Widget
        remove_meta_box('dashboard_activity', 'dashboard', 'normal');
        
        // Entferne das "WordPress-Nachrichten"-Widget
        remove_meta_box('dashboard_primary', 'dashboard', 'side');
        
        // Entferne das "Ereignisse und Neuigkeiten"-Widget
        remove_meta_box('dashboard_secondary', 'dashboard', 'side');
        
        // Entferne das "Willkommen"-Widget
        remove_meta_box('dashboard_welcome', 'dashboard', 'normal');
    }
}
add_action('wp_dashboard_setup', 'remove_dashboard_widgets');

// Funktion zum Entfernen von Meta-Boxen im Editor-Bereich
function remove_meta_boxes() {
    // Nur für Abonnenten
    if (current_user_can('subscriber')) {
        // Entferne Meta-Boxen von Beiträgen
        remove_meta_box('authordiv', 'post', 'normal'); // Autoren-Box
        remove_meta_box('categorydiv', 'post', 'side'); // Kategorie-Box
        remove_meta_box('tagsdiv-post_tag', 'post', 'side'); // Schlagwörter-Box
        
        // Entferne Meta-Boxen von Seiten
        remove_meta_box('authordiv', 'page', 'normal'); // Autoren-Box
        remove_meta_box('postcustom', 'page', 'normal'); // Benutzerdefinierte Felder
    }
}
add_action('add_meta_boxes', 'remove_meta_boxes');

Erklärung des Codes:

  1. current_user_can('subscriber'): Überprüft, ob der aktuell angemeldete Benutzer die Rolle „Abonnent“ hat. Der Code wird nur für diese Benutzerrolle ausgeführt.
  2. remove_action('welcome_panel', 'wp_welcome_panel'): Entfernt das „Willkommen“-Panel aus dem Dashboard.
  3. remove_meta_box('dashboard_quick_press', 'dashboard', 'side'): Entfernt das „Schneller Entwurf“-Widget aus dem Dashboard.
  4. remove_meta_box('dashboard_activity', 'dashboard', 'normal'): Entfernt das „Aktivitäten“-Widget aus dem Dashboard.
  5. remove_meta_box('dashboard_primary', 'dashboard', 'side'): Entfernt das „WordPress-Nachrichten“-Widget aus dem Dashboard.
  6. remove_meta_box('authordiv', 'post', 'normal'): Entfernt die Autoren-Box von Beitragsseiten im Editor-Bereich.
  7. remove_meta_box('categorydiv', 'post', 'side'): Entfernt die Kategorie-Box von Beitragsseiten im Editor-Bereich.

Anpassen des Codes

  • Wenn du die Widgets und Meta-Boxen für andere Benutzerrollen entfernen möchtest, kannst du current_user_can('subscriber') durch eine andere Rolle ersetzen, wie administrator, editor, author, etc.
  • Wenn du mehr Widgets oder Boxen entfernen möchtest, kannst du die entsprechenden remove_meta_box()-Funktionen hinzufügen, die zu den IDs der Widgets passen, die du entfernen möchtest.

Fazit

Dieser Ansatz ermöglicht es dir, das WordPress-Dashboard für spezifische Benutzerrollen anzupassen, indem du bestimmte Bildschirm-Elemente ausblendest. Das resultiert in einer vereinfachten Benutzeroberfläche, die auf die Bedürfnisse der Benutzer zugeschnitten ist und unnötige Ablenkungen vermeidet.