Ukryj pasek administratora dla użytkowników niebędących administratorami w WordPress
PL

Ukryj pasek administratora dla użytkowników niebędących administratorami w WordPress

5.00 /5 - (29 głosów )
Spis treści

Bei Mitgliederseiten, WooCommerce-Shops oder Benutzer-Portalen ist die Standard-WordPress-Admin-Leiste störend für normale Kunden.

Das Problem

Die WordPress Admin-Leiste erscheint für alle eingeloggten Benutzer. Problematisch für:

  • Mitgliederseiten: Bricht das professionelle Aussehen
  • E-Commerce: Lenkt vom Einkaufserlebnis ab
  • Kundenportale: Wirkt unprofessionell

Die Lösung

Füge dies in functions.php hinzu:

/**
 * Admin-Leiste nur für Administratoren anzeigen
 */
add_action('after_setup_theme', 'wppoland_remove_admin_bar');

function wppoland_remove_admin_bar() {
    if ( ! current_user_can( 'administrator' ) && ! is_admin() ) {
        show_admin_bar( false );
    }
}

Wie es funktioniert

  1. current_user_can('administrator'): Prüft Admin-Rolle
  2. ! is_admin(): Nur auf Frontend anwenden
  3. show_admin_bar(false): Leiste ausblenden

Rollenbasiertes Ausblenden

add_action('after_setup_theme', 'wppoland_remove_admin_bar_by_role');

function wppoland_remove_admin_bar_by_role() {
    if ( is_admin() ) return;
    
    $current_user = wp_get_current_user();
    $hidden_roles = array( 'subscriber', 'customer', 'contributor' );
    
    if ( array_intersect( $hidden_roles, $current_user->roles ) ) {
        show_admin_bar( false );
    }
}

Warum Code statt Plugin?

Plugin-Overhead:

  • Datenbank-Abfragen
  • Zusätzliche PHP-Dateien
  • Plugin-Update-Wartung

Code-Vorteile:

  • Null Overhead
  • Versionskontrolliert
  • Keine Plugin-Konflikte
  • Schnellerer Ausführung

Best Practices

  1. Immer is_admin() prüfen
  2. Capabilities statt Rollen verwenden
  3. Mit verschiedenen Benutzerrollen testen
  4. Logik dokumentieren

Zusammenfassung

  • ✅ Sauberes Frontend-Design
  • ✅ Besseres Benutzererlebnis
  • ✅ Professionelleres Aussehen
  • ✅ Kein Plugin-Overhead