• Gelöst JOHN2000

    (@john2000)


    Ich bin grad dabei die User Rollen in den Kommentaren neben den namen anzeigen zu lassen!

    Klappt auch mit diesen code

    <?php //get the commented user id
    $user_id   = get_comment(get_comment_ID())->user_id;
    
    if ($user_id)
    {
        $user_info = get_userdata($user_id );
        if ( isset($user_info->roles) ) {
           echo implode(', ', $user_info->roles);
        } else {
           echo 'Member Deleted';
        }
    } ?>

    Problem es wird nicht der Name angezeigt sondern der Slug!

    Wie kann ich den Code ändern um den Namen anzeigen zu lassen? da ich die Namen geändert habe.

Ansicht von 15 Antworten – 1 bis 15 (von insgesamt 15)
  • Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Welche Variablen im Objekt WP_User enthalten sind, kannst du der Core-Datei entnehmen.

    Thread-Starter JOHN2000

    (@john2000)

    Hmm und wie soll mir das jetzt weiterhelfen?

    hab mir das angeschaut und werde auch nicht schlauer daraus!

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Du machst es dir ein wenig zu einfach.

    get_comment_id() holt die ID eines Kommentars.
    get_comment( $id ) holt das Kommentar-Objekt des Kommentars mit einer ID,

    also

    $comment = get_comment( get_comment_id() );

    In diesem Objekt ist alles mögliche enthalten, du möchtest aber nur den Benutzernamen

    $comment = get_comment( get_comment_id() );
    echo $comment->comment_author;

    Du möchtest aber nicht den Autoren-Slug, sondern den Vor- und Zunamen eines registrierten Nutzers. Hier wird es Zeit, ein if-Statement einzufügen, falls der Kommentar-Autor nicht registriert bzw. gelöscht ist.

    $comment = get_comment( get_comment_id() );
    $author_id = $comment->user_id;
    if( $author_id ) {
      $user_info = get_userdata( $author_id );
      $first_name = $user_info->first_name;
      $last_name = $user_info->last_name;
      echo "Diesen Kommentar hat $first_name $last_name geschrieben.";
    } else {
     echo 'Der Autor musste uns vorzeitig verlassen.'
    }

    Welche anderen Userdaten aus $user_info abgerufen werden können, steht wie gesagt in der Klasse.

    Moderator Torsten Landsiedel

    (@zodiac1978)

    Hmm und wie soll mir das jetzt weiterhelfen?

    Dein Code holt sich die Info per get_userdata und das gibt als Return folgendes:

    False on failure, WP_User object on success.

    Und Bego hat dir den Link gegeben, was in dem WP_User-Objekt alles drin ist. Deine gewünschte Info findet sich so also nicht direkt.

    Dieses Forum soll Hilfe zur Selbsthilfe geben. Du kannst mit den neuen Infos also selber weiter recherchieren.

    Dann kommst du vielleicht auf ähnliche Fragen:
    http://stackoverflow.com/questions/25059638/wordpress-role-display-name

    Auf Funktionen, die eine Lösung sein dürften:
    https://wpseek.com/function/translate_user_role/

    Und sogar zu einem wahrscheinlich komplett funktionierenden Snippet:
    https://wordpress.org/support/topic/how-to-get-the-current-logged-in-users-role?replies=10#post-1691825

    Gruß, Torsten

    Moderator Torsten Landsiedel

    (@zodiac1978)

    @bego: Er will doch die Benutzerrolle haben und nicht den Namen, oder?

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    @torsten: hatte ich so verstanden?

    Wie kann ich den Code ändern um den Namen anzeigen zu lassen? da ich die Namen geändert habe.

    Moderator Torsten Landsiedel

    (@zodiac1978)

    Den Namen der Benutzerrolle (nicht den Slug der Benutzerrolle) 😉

    Thread-Starter JOHN2000

    (@john2000)

    Ich brauche den namen der rolle nicht den namen!

    Die links kenne ich schon hab ja schon gesucht und paar snippets probiert hat aber nichts funktioniert.

    Moderator Torsten Landsiedel

    (@zodiac1978)

    Wenn das deine Mithilfe bei der Sache ist, höre ich an dieser Stelle auf dir zu helfen. Weiterhin viel Erfolg.

    Gruß, Torsten

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Wenn das deine Mithilfe bei der Sache ist, höre ich an dieser Stelle auf dir zu helfen. Weiterhin viel Erfolg.

    Leider ist das nicht nur in diesem Thread so. Deshalb schließe ich mich nur noch den guten Wünschen an dieser Stelle an.

    Thread-Starter JOHN2000

    (@john2000)

    Ich weiß nicht was ihr erwartet! wenn ich nunmal nicht das wissen hab frag ich eben hier! dachte dafür ist das Support forum da.

    Mein Wissen reicht oftmals eben auch nicht aus um selber zu recherchieren sonst würde ich es ja so machen und mache es auch mit Themen die mir geläufig sind!

    Schade dann verabschiede ich mich aus diesen Forum.

    Moderator Torsten Landsiedel

    (@zodiac1978)

    Wir helfen sehr gerne, auch Anfängern. Aber wenn wir funktionsfähigen Code oder detaillierte Problemlösungen liefern und du nur „hat aber nichts funktioniert.“ antwortest, dann beendest *du* die Diskussion.

    Wie sollen wir denn jetzt weitermachen? Warum funktioniert es nicht? Gibt es die falsche Ausgabe oder gar keine? Gibt es eine Fehlermeldung? Hast Du den Debug-Modus überhaupt aktiviert? Bist du lokal oder auf einem Server? Welche PHP-Version? etc etc. – du gibst uns keine Infos und schreibst nur „geht nicht“. Und jetzt sollen wir was genau tun? Hellsehen? Nachfragen?

    Dieser Thread hier: https://de.forums.wordpress.org/topic/schriftart-festlegen endet genauso abrupt, weil du keine weiteren Infos gibst. Das ist extrem demotivierend für Helfer.

    Ich helfe dir gerne sofort weiter, wenn du mitrecherchierst und Infos gibst. Auf ein „geht nicht“ ohne weitere Infos, was du genau gemacht hast und wo, welches Problem bei der Umsetzung auftritt, werde ich allerdings nicht mehr antworten.

    Gruß, Torsten

    Thread-Starter JOHN2000

    (@john2000)

    Der 5 Jahre alte Code der den slug übersetzen soll funktioniert einfach nicht, wozu braucht man dafür noch eine beschreibung?

    Er tut nicht das was er soll, es gibt auch keine Fehlermeldung etc.

    Mein Problem habe ich eh schon gelöst.

    Moderator Torsten Landsiedel

    (@zodiac1978)

    Mein Problem habe ich eh schon gelöst.

    Teilen möchtest du das aber nicht mit uns?

    Moderator Torsten Landsiedel

    (@zodiac1978)

    Er tut nicht das was er soll

    Was soll er denn? Laut DocBlock:

    Returns the translated role of the current user.

    Und genau das tut er. Ein „return“ ist aber kein „echo„.

    Wenn du die Funktion z.B. in der functions.php definierst, dann kannst du mit <?php echo get_current_user_role(); ?> das gewünschte Ergebnis ausgeben.

    Falls du es noch liest und falls sonst jemand über eine Suche auf diesen Thread kommt (und damit die Aussage, dass der Code nicht funktioniert hier am Ende nicht unkommentiert stehenbleibt).

    Gruß, Torsten

Ansicht von 15 Antworten – 1 bis 15 (von insgesamt 15)
  • Das Thema „User Role Anzeigen lassen“ ist für neue Antworten geschlossen.