Dashboard Aussehen bei bestimmten Benutzer-Typen per .css verändern

  • Hallo,

    hoffe ihr könnt mir an diesem Punkt weiter helfen.

    Ich möchte das Background Dashboard per .css mit anderen Styles versehen. Soweit funktioniert das auch bestens. Jedoch möchte ich, dass diese extra erstellte .css Datei nur bei 3 Benutzer-Typen angewandt wird.
    Ich habe verschiedene Benutzertypen, welche unterschiedliche Rechte haben. Und natürlich den Benutzer-Typ "Admin", welcher von dieser .css Datei nicht betroffen sein soll.

    Als Beispiel:
    .css Datei soll nur bei folgenden 3 Benutzer-Typen IDs angewandt werden: 2, 3, 4

    Momentan habe ich in der function.php folgenden PHP Code, welcher die extra erstellte .css Datei einbindet.
    Wie muss ich ihn verändern, damit bei den oben genannten Benutzertypen die .css geladen wird:

    PHP
    function customAdminStyles() {
    $url = get_bloginfo('template_url') . '/dashboard.css'; 
    echo '<!-- custom admin css -->
    <link rel="stylesheet" type="text/css" href="' . $url . '" />
    <!-- /end custom adming css -->';
    }
    add_action('admin_head', 'customAdminStyles');

    Vielen Dank schon einmal für die Hilfe

    Grüße

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Danke für die Antwort/Hilfe! :)
    Leider kann ich kein php. Höchstens etwas abändern.
    Wäre es möglich, dass du mir die Zeile postest, wie sie in den obigen Code eingefügt wird?
    Wäre echt klasse!! :razz:

  • Doch eine etwas andere Variante aber so in etwa:

    function customAdminStyles() {
    global $current_user;
    if(!$id) $id = $current_user->ID;

    if($id=="2" || $id=="3" ||$id=="4" ){
    $url = get_bloginfo('template_url') . '/dashboard.css';
    echo '<!-- custom admin css -->
    <link rel="stylesheet" type="text/css" href="' . $url . '" />
    <!-- /end custom adming css -->';
    }
    }
    add_action('admin_head', 'customAdminStyles');

  • ok. das blöde ist, ich weiss nicht genau wie ich an die Nutzer-typen IDs komme. Und ohne die, kann natürlich auch der Code von dir nicht funktionieren.

    damn. Idee?

  • global $current_user;
    if(!$id) $id = $current_user->ID;
    echo $id;

    wenn du das mal in z.B. die header.php kopierst, solltest du die ID des jeweiligen Users auf deiner Seite wo ausgegeben sehen. Das bei allen Usern machen, rausschreiben und den Code dementsprechend ändern. Zwar nicht die schönste Möglichkeit, sollte aber funktionieren ;)

  • hey super vielen dank für eure hilfreichen Antworten!!!

    Ich hatte ich wohl nur etwas blöd ausgedrückt.
    Was ich suche ist die ID einer User-Rolle, nicht die eines Users. Kurze Erläuterung:

    Man kann sich auf meiner Webseite anmelden und eine von drei Account-Arten wählen. Jenachdem welche Account-Art man wählt, hat man später andere Möglichkeiten als angemeldeter User.
    Jetzt ist es so, dass ich eine .css Datei aufrufe, sobald eine dieser drei Account-Arten/Rollen genutzt wird. Also beispielsweise, ich bin User Nr.45 mit der Account Rolle 2. Ich logge mich ein und geh auf mein Wordpress Dashboard, hier möchte ich nun, dass eben meine custom-css Datei geladen wird.
    Wenn ich mich als Admin-User anmelde möchte ich aber, dass meine Custom-css nicht geladen wird.

    Das heißt. Insgesamt gibt es 4 verschiedene "Rollen"
    - Admin (css wird nicht geladen)
    - Account-Rolle 1 (custom css wird geladen)
    - Account-Rolle 2 (custom css wird geladen)
    - Account-Rolle 3 (custom css wird geladen)

  • Meinst du mit Rolle, den Level des Benutzers (http://codex.wordpress.org/User_Levels) ??

    Dann könntest du es dir mit hier dem Code im Dashboard unter Benutzer anzeigen lassen.


    (angepasster Code von hier http://pippinsplugins.com/add-user-id-co…ss-users-table/)

    Oder meinst du den Namen der Rolle, also Administraor, Author etc. ?

    MfG

    Einmal editiert, zuletzt von g3h (1. September 2013 um 15:26)

  • Die Abfrage für einen User mit dem Level 2 (ist bei mir ein Autor) könnte dann so aussehen:


    admin_head habe ich durch wp_head ersetzt, weil das logischerweise nur bei einem Admin klappt...

    MfG

    Einmal editiert, zuletzt von g3h (1. September 2013 um 18:04)


  • admin_head habe ich durch wp_head ersetzt, weil das logischerweise nur bei einem Admin klappt...

    Ups das ist natürlich quatsch.. admin_head braucht man hier schon, da man damit ja nur das Dashboard anpassen kann. Das andere wäre dann für die normale Internet Seite....

    Also nochmal das ganze richtig:

    Einmal editiert, zuletzt von g3h (1. September 2013 um 18:34)

  • So wie ich das sehe kannst du das dann aber genau so gut über den Level eines Users machen.
    Bei mir ist zB der Level aller User mit der Rolle Autor "2". Der Level des Administrators ist 10.

    Also kannst du das mit dem Code den ich oben angegeben habe realisieren.
    Den Level von jeder User Kategorie bekommst du ja über den Code den ich in Post #13 angegeben habe.
    In Post #15 habe ich den Code für die Abfrage geschrieben, den du dann für die anderen Level noch ergänzen kannst.

    Das andere ist glaubig etwas komplizierter.

    MfG

    Einmal editiert, zuletzt von g3h (3. September 2013 um 16:25)

  • Ok mit folgedem Code geht es doch auch relativ einfach (das ganze muss in die functions.php):

    Die Funktion "function check_user_role" ist von hier: http://wpbandit.com/code/check-a-users-role-in-wordpress/

    MfG

  • Noch eine kleine Änderung (sonst wird der 'administrator' immer mit gesucht und er bekommt die falsche css), dann sollte es funktionieren:

    MfG

    Einmal editiert, zuletzt von g3h (4. September 2013 um 19:37)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!