WordPress 2.5: Gravatare einfach nutzen

default Gravatar

Die kommende Version 2.5 von WordPress hat den Gravatar-Dienst in den Core-Daten integriert. Einerseits nutzt man dies, um die Kommentarübersicht im Backend zu verschönern, andererseits kann man natürlich diese Funktion in das eigene Template integrieren und muss nicht Plugins nutzen oder andere Wege gehen.

Dazu genügt das Einfügen des folgenden Syntax und schon wird das kleine Bildchen ausgegeben.


<?php if(function_exists('get_avatar')) {
	echo get_avatar( $comment );
} ?>

Die Funktion get_avatar() (/wp-includes/pluggable.php) kann drei Parameter aufnehmen und so kann man recht gut Einfluss nehmen.

  • $id_or_email Mailadresse oder ID des Users, Kommentators
  • $size Größe des Gravatars in Pixel
  • $default Standardbild, wenn kein Gravatar dem User zugeordnet werden kann

get_avatar( $id_or_email, $size = '96', $default = '' )

Als Standard-Gravatar wird http://www.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536 geladen, dass ist das Icon für die Mail-Adresse unknown@gravatar.com (MD5 verschlüsselt: d516503a11cd5ca435acc9bb6523536). Die Größe beträgt im Standard 96 Pixel. Es muss also lediglich der erste Parameter bzw. die Variable übergeben werden.

Die Ausgabe sind dann wie folgt aus.


<img alt='' src='http://www.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s=96' class='avatar avatar-96 avatar-default' height='96' width='96' />

Somit kann mittels CSS auf das Design Einfluss genommen werden. Die Class avatar steht übergreifend bereit. Ebenso steht eine class mit der Größe des Gravatar bereit: avatar-GRÖßE. Vielfältige Formatierungen sind also möglich.

Wie einbauen?

Da immer wieder Nachfragen kommen, hier eine kurze Möglichkeit die Funktion einzubauen, für nicht PHPler.

Grundsätzlich muss der Code in die comments.php, die sorgt für die Ausgabe und das Formular der Kommentare. Natürlich kann das anders sein, bei dem einen oder anderen Theme, aber die Masse wird wohl so aussehen.

Die Funktion muss in die Ausgabe jedes einzelnen Kommentars, das bedeutet, dass sie in der Schleife <?php foreach ($comments as $comment) : > hinterlegt sein muss.
In der Regel nach dem li-Punkt, der die Ausgabe des einzelnen Kommentars ausgibt.

Suche:


  <ol class="commentlist">

    <?php foreach ($comments as $comment) : ?>

       <li &t;?php echo $oddcomment; ?&gt;id="comment-&alt;?php comment_ID() ?&gt;">

Ersetze:


  <ol class="commentlist"<

    <?php foreach ($comments as $comment) : ?>

      <li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>"<
        <?php echo get_avatar( $comment, 32 ); ?>

Einige Thems kommen ohne eine Liste aus (ol oder ul); die Ausgabe wird dort via div erzeugt. Wichtig ist nur, es muss in der Schleife sein.


<?php foreach ($comments as $comment) : ?>
. . .
<?php endforeach; /* end for each comment */ ?>

Formatierung via CSS

Die Formatierung könnte dann wie folgt aussehen. Dieser Syntax gehört in die style.css des verwendeten Themes.


.commentlist li .avatar { 
	float: right;
	border: 1px solid #eee;
	padding: 2px;
	background: #fff;
	}

45 Comments

  1. Bin zurück, hoffe habt ein nettes Osterfest verbracht, Energie getankt, damit noch viel neues von Euch kommt. Gute Artikel, sehr gut zu lesen;-)

  2. Die Ausgabe sind dann wie folgt aus.
    <img alt='' src='http://www.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s=96' class='avatar avatar-96 avatar-default' height='96' width='96' />


    Ich gehe dann aber mal davon aus, dass bis zum Final der Code auch noch valide wird? Also vor allem doppelte Anführungszeichen für die Werte. Andererseits, diesen Lapsus leistet sich WP in der aktuellen Version auch noch, wenn man z.B. Grafiken aus dem Upload/der Galerie in den Editor sendet.

  3. Ich weiß immer noch nicht so recht, in welche Datei und an welche Stelle ich das Codeschnippsel einfügen muss. comments.php? Und an welcher stelle? Ich habe zwar das Prinzip verstanden, in den recent comments und im backend funktioniert das mit den Gravataren auch - nur halt auf der single.php bzw. in der comments.php - da mangelts noch 🙁

  4. Hallo,

    kann ich auf diese Weise einen Gravatar auch in die Single.php einbauen? Ich möchte für ein Magazin gerne auch in den Artikeln den Gravatar haben.

    Vielen Dank für Antwort.

    Beste Grüße
    Frank

  5. @Frank: Die Funktion funktioniert immer im Loop, also auch in der single.php. Die Variable $comment muss in dem fall nur aus einem anderen Hintergrund gefüllt werden. Ich mache mal einen kleinen Artikel dazu fertig.

  6. Herzlichen Dank! Ich steig grad auf WordPress um und das hier hat mir sehr geholfen.

    Eine Frage hätte ich noch: Was muss ich machen, damit das Gravatar nicht allein in einer Zeile steht und der Text darunter beginnt, sondern um den Gravatar herumfließt?

    Herzlichen Dank
    bee

  7. toller artikel! eine frage habe ich aber noch:
    wie kann ich denn das Standardbild als relativen Bildpfad laden? Ich habe folgendes probiert:

    echo get_avatar( $comment, 40, '/images/avatar-default.jpg' );

    Funzt natürlich nicht.

  8. Hallo Frank 😉

    das würde mich auch interessieren!
    Kann man WordPress denn ein Standardbild geben? Also wenn jemand keinen Gravatar mit seiner Mailaddy verknüpft hat?
    Das würd mein neues Layout nicht ganz so sehr "sprengen" 😉

    lg
    Jared

  9. @nitnat: versuche mal:

    <?php $gravatar_default = get_option('siteurl') . '/wp-content/pfad_zum_bild/images/avatar.gif'; ?>
    <?php echo get_avatar( $comment, 32, urlencode($gravatar_default) ); ?>
    

    Konnte aus Zeitmangel nicht testen.

  10. jo, funktioniert! Allerdings ohne urlencode(), also folgendermaßen:

    <?php $gravatar_default = get_option('siteurl') . '/wp-content/pfad_zum_bild/images/avatar.gif'; ?>
    <?php echo get_avatar( $comment, 32, $gravatar_default ); ?>
    

    herzlichen dank für deine hilfe!

  11. Hallo Frank,

    wie kann ich den ein eigenes Gravatar für Trackbacks einbinden? Hab da im Netz nichts zu gefunden...

    Vielen Dank
    Alex

Comments are closed.