24. Mai 2009
Aktuell arbeite ich an einem umfangreichen Redesign, wo ich im Footer gerne alle Autoren auflisten möchte. Eine einfache Namensliste ist aber noch nicht genug, deshalb sollen die Gravatare der Benutzer angezeigt werden. Aber eins nach dem anderen: Für die Anzeige aller Autoren muss man die Benutzer-IDs in der Datenbank abfragen. Dafür fand ich bei Matt Varone eine passende Lösung. Alle Daten werden dann mit Hilfe von get_userdata() ausgegeben.
<ul>
<?php
$szSort = "user_nicename"; // Wie die User sortiert werden sollen, z.B. nach der ID
$aUsersID = $wpdb->get_col( $wpdb->prepare(
"SELECT $wpdb->users.ID FROM $wpdb->users ORDER BY %s ASC"
, $szSort ));
foreach ( $aUsersID as $iUserID ) :
$user = get_userdata( $iUserID );
echo '<li>' . $user->first_name . ' ' . $user->last_name . '</li>';
endforeach;
?>
</ul>
Jetzt wird eine Liste mit Vorname ($user->first_name) un Nachname ($user->last_name) angezeigt. Die Angaben wie first_name und last_name sind gleichzeitig die Namen der Spalten in der Datenbank. In der Funktionsreferenz für get_userdata findet man eine Liste aller Eingabemöglichkeiten. Es lässt sich unter anderem auch anzeigen, welches Admin-Farbschema dieser Benutzer aktiviert hat.
Im Prinzip könnte man diese Funktion bereits überall einbauen, wo man möchte. Doch für mich reicht das noch nicht, denn ich möchte die Gravatare aller Benutzer ausser den Abonnenten anzeigen. Dazu sind nur ein paar wenige Anpassungen im Code nötig.
<ul>
<?php
$szSort = "user_nicename";
$aUsersID = $wpdb->get_col( $wpdb->prepare(
"SELECT $wpdb->users.ID FROM $wpdb->users ORDER BY %s ASC"
, $szSort ));
foreach ( $aUsersID as $iUserID ) :
$user = get_userdata( $iUserID );
if($user->wp_user_level >= 1) {
echo '<li><a href="/author/' . strtolower( $user->user_login ) . '/">
<img src="http://www.gravatar.com/avatar/' . md5( $user->user_email ) .
'?s=50&d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca
435acc9bb6523536%3Fs%3D40&r=G"></img></a></li>';
}
endforeach;
?>
</ul>
Was ist neu? Nun, zuerst habe ich einmal den Namen durch den Gravatar ersetzt, wobei die E-Mail Adresse durch MD5 verschlüsselt werden muss. Danach habe ich das Bild noch mit der Autorenseite verlinkt, wo alle Artikel dieses Autors aufgelistet werden (Beispiel: http://beispiel.de/author/admin/).
Das wäre eigentlich schon alles. Mit ein bisschen CSS kann man die Bilder auch noch aufpeppen, was dann in meinem Fall so herausgekommen ist, wie ihr es auf dem Bild seht :-)
© 2012 Schweizer WordPress Magazin | Realisiert von Pascal Birchler | 52 Queries. 0,534 Sekunden.