Gerade kam die Frage eines Leser wie man eine eigene Standardgrafik für Gravatare definieren kann und vor allem wo man das machen muss.
Für Leute die es nicht wissen, Gravatare sind kleine Grafiken, die bei dem Dienst Gravatar.com mit einer E-Mail-Adresse verknüpft sind. Kommentiert man mit der E-Mail-Adresse, dann erscheint in den Kommentaren neben/unter dem Namen die Gravatar-Grafik. Quasi ein “Passbild” des Kommentators … vorausgesetzt der Betreiber des Blogs hat die Gravatar-Funktion nicht deaktiviert und vorausgesetzt das System unterstützt Gravatare.
Wenn man sich bei Gravatar nicht registriert dann erscheint neben den Kommentaren, die Standardgrafik die in WordPress-Backend definiert ist (siehe linke Grafik in der Abbildung). Neben dieser Grafik gibt es unter “Einstellungen” » “Diskussion” noch vier weitere Grafiken, die als Standardgrafik dienen können.
Gefallen einem diese Grafiken nicht oder möchte man die Standardgrafik an das Layout des Weblogs angleichen, dann muss man eigene Standardgrafik definieren. Ich habe hierfür eine Standardgrafik erstellt in der unser Logo zu sehen ist (rechte Grafik in der Abbildung).
Die comments.php anpassen
Nun muss man aber WordPress sagen dass er auch eine andere Standardgrafik einsetzen soll. Ich habe jetzt nicht geschaut ob es Plugins dafür gibt, daher zeige ich wie ich hierbei vorgegangen bin: ich habe die comments.php angepasst.
Die Steuerung der Gravatare übernimmt folgende Funktion: get_avatar()
. Die Funktion hat drei Parameter. Der erste Parameter muss angegeben werden und hier wird abgefragt ob man die Gravatare an Hand der E-Mail oder der ID des Kommentators einbindet.
Der zweite Parameter ist optional und mit ihm wird die Größe des Gravatars festgesetzt. Der dritte Parameter ist der Pfad zu der Standardgrafik, ist nur Pflicht wenn man eigene Standardgrafik definieren will, sonst ist diese Angabe optional. So schaut eine Angabe mit allen Parametern aus:
<?php
echo get_avatar(get_comment_author_email(), '24', 'eigene-grafik.png' );
?>
Dieser Code bestimmt, dass die E-Mail des Kommentators berücksichtigt wird, dass der Gravatar 24 Pixel groß ist und im dritten Parameter wird die Adresse der Grafik notiert, logischerweise muss man hier den absoluten Pfad eingeben, wenn die Grafik auf einem externen Server liegt.
Abfrage ob die Funktion existiert
Erstellt man ein WordPress-Theme für die breite Öffentlichkeit, dann bietet es sich an zu prüfen ob die Gravatar-Funktion existiert, da Gravatare erst seit WordPress 2.5 zum Standardumfang dazugehören und es noch etliche Nutzer gibt, die noch ältere WordPress-Versionen im Einsatz haben.
So schaut dann die Abfrage aus:
<?php if(function_exists('get_avatar')) {
echo get_avatar(get_comment_author_email(), '24', 'eigene-grafik.png' );
} ?>
Wo binde ich den Code ein?
Der Code wird in der comments.php eingebunden und wo man das macht ist Geschmackssache. Ich habe die Gravatare zwischen der Überschrift des einzelnen Kommentars und dem Kommentar-Text eingebunden. Aber hier hat man recht viele Freiheiten, weil die Avatar-Grafiken einen class
-Attribut und zwei Werte spendiert bekommen: class="avatar avatar-xyz"
. Das xyz
steht für die Größe der Grafik, die man in dem zweiten Parameter definiert hat: in unserem Fall hieße der zweite Wert avatar-24
. So hat man mindestens einen Klassen-Selektor um mit CSS die Grafik innerhalb der Kommentare zu positionieren.
Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienstleistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.
Danke für den Tipp! 🙂
Wow, soviel Mühe hättest Du Dir nicht machen brauchen 😀
Eine Frage hätte ich aber noch, wo muss die Standardgrafik liegen, also in welchem Verzeichnis, wenn ich mich nicht bei Gravatar.com anmelden möchte?!
@niffi,
Das eine hat mit dem anderen nichts zu tun. Wo die Standard-Grafik liegt ist egal, nur der Pfad muss der richtige sein.
Die Registrierung bei Gravatar.com hat mit der Standardgrafik deines Weblogs nix zu tun, die Registrierung ist nur für die einzelnen Kommentare relevant.
Ich hatte es damals so gemacht: http://bueltge.de/avatare-zum-standard-von-wordpress-hinzufuegen/852/
Vielleicht nur als Ergänzung zu sehen.
@maxe,
danke für den Link, den Beitrag kannte ich zwar, aber ist in den Wust von mehreren Hundert WordPress-Lesezeichen untergegangen.
@Perun
Cool danke, werd ich heute gleich mal Testen 😀
Ich hab dafür ein Plugin.
Aber weil es ein Geheimprojekt der CIA ist, verrätst du nicht die Adresse?
Es nennt sich EasyGravatars.
Aber psssst, … die CIA wirft mich sonst aus dem Projekt!