23. August 2010 • Aktualisiert am 22. August 2010
In diesem Beitrag möchten wir euch zeigen, wie ihr eine kleine Autoren-Box am Ende jedes Blog-Beitrags anzeigen lassen könnt. Wir werden hier weitgehend den Code vorstellen, den wir auch hier im Blog benutzen, erweitern diesen aber noch zusätzlich, dass wir auch die Kontaktinformationen eines jeden Autors ausgeben können.
Zuerst öffnen wir die single.php Datei unseres aktuellen Themes und suchen die Schleife (Loop), wo der jeweilige Beitrag ausgegeben wird und erstellen vor dem <?php endwhile; ?> einen Div-Container. Dies sieht dann in etwa so aus:
<?php if (have_posts()) : while (have_posts()) : the_post();?>
<div id="post-<?php the_ID(); ?>" <?php post_class() ?>>
<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
<?php the_content(); ?>
</div>
<div id="post-author">
</div>
<?php endwhile; ?>
Für die Ausgabe der verschiedenen Informationen über den Beitrags-Autoren gibt es viele Funktionen in WordPress. Mit der Funktion get_avatar() können wir zum Beispiel das Gravatar des Autors anzeigen lassen, mit the_author() seinen öffentlichen Namen und mit the_author_meta() alle weiteren Benutzerinformationen wie E-Mail Adresse oder Website. Das sieht dann ungefähr so aus:
<div id="post-author">
<?php echo get_avatar(get_the_author_meta('user_email'), $size = 50, $default = '', $alt = 'Dies ist nur ein Gravatar'); ?>
<strong><?php the_author(); ?></strong>
<p><?php the_author_meta('description'); ?></p>
<ul>
<li>Website: <?php the_author_meta('user_url'); ?></li>
<li>AIM: <?php the_author_meta('aim'); ?></li>
</ul>
</div>
Leider sieht es noch ganz und gar nicht nach einer Box aus, weswegen wir noch ein paar CSS-technische Handgriffe anwenden müssen. Dazu schreiben wir folgende, simple Zeilen, die unsere Autoren-Box gleich etwas verschönern, in die style.css Datei des Themes.
#post-author {
display:block;
background:#efefef;
border:1px solid #ccc;
padding:5px;
margin-top:25px;
}
#post-author img.avatar {
float:left;
margin:0 10px 5px 0;
padding:3px;
border:1px solid #ccc;
}
#post-author ul li {
display:inline;
margin-right:20px;
}
Wenn die Autoren eines Blogs auch auf Twitter anzutreffen sind, dann wäre es doch klasse, wenn man auch den Twitternamen anzeigen könnte. Dafür müssen wir uns durch einen eigenen Filter eine zusätzliche Kontaktmethode zu den Benutzerprofilen hinzufügen:
function wpm_add_twitter_contactmethod( $contactmethods ) {
// Twitter hinzufügen
$contactmethods['twitter'] = 'Twitter';
return $contactmethods;
}
add_filter('user_contactmethods','wpm_add_twitter_contactmethod',10,1);
Dadurch können wir jetzt unseren Twitternamen in den Profileinstellungen erfassen und ihn dann in unserer Autoren-Box ausgeben.
Die Autoren-Box könnte man noch etwas perfektionieren, indem man die Existenz der Funktionen überprüft und notfalls auf veraltete, in früheren WordPress-Versionen verwendete Funktionen zurückgreift. Ausserdem könnte man die Website oder den Twitternamen noch verlinken, aber das dürfte kein Problem sein.
© 2012 Schweizer WordPress Magazin | Realisiert von Pascal Birchler | 58 Queries. 0,575 Sekunden.
Danke für die Beschreibung. Kannst Du mir auch sagen, wie ich HTML, oder besser nur bestimmte Tags, in der Beschreibung zulassen kann?
Hallo Daniel
Schau dir doch mal die PHP Funktion
strip_tags()an (http://php.net/manual/de/function.strip-tags.php). Du kannst damit alle HTML-Tags entfernen und nur einzelne zulassen.Geht leichter: http://www.wprecipes.com/how-to-allow-html-in-user-profiles
Hat bei mir funktioniert.
Also bei mir funktioniert das Einfügen von HTML auch ohne Filter-Manipulation. Aber jedem das seine :-)
Tja, bei mir leider nicht. Eigentlich möchte ich auch nur p, br, em, strong und das gibt es nicht her. Vielleicht hat ja jemand anderes noch eine Lösung?
HI Pascal,
klasse Bericht, ich finde deine eigene Box super, kannste deine Anleitung etwas erweitern, und uns sagen, wie man Twitter und facebook reingebastelt kriegt ?
Danke
gruss
aus La Palma
Joe
Hallo Joe
Wie man Twitter hinzufügt, ist ja oben beschrieben. Mit Facebook machst du das genau gleich (praktisch Copy/Paste). Die Ausgabe erfolgt dann mit
.Klasse Artikel und lässt sich damit leicht umsetzen.
gelesen – probiert – funktioniert
Hallo Pascal und den rest hier,
intressanter Artikel =)
Eventuell ist hierzu auch ein Artikel von mir Interessant, in dem ich erklär wie man leicht die Profilfelder bzw. Angaben erweitert bzw, neue hinzufügt um seine Autorenseiten oder auch Autoren Boxen um Felder zu erweitern, die im WordPress Standart nicht vorkommen.
the_author_meta: Profil Angaben erweitern
Hallo Pascal,
funktioniert das wegen der veralteten Funktionen in WordPress auch mit älteren oder nur mit 3.0?
Lois
Ich verstehe nicht ganz? Also die Funktion
the_author_meta()gibt es seit WordPress 2.8,get_avatar()seit 2.5, die anderen schon länger.sehr guter und verständlicher artikel, dankeschön!
liebe grüße
katrin
Vielen Dank für diese ausführliche Anleitung – ich spiele schon länger mit dem Gedanken so eine Box für Gastautoren zu integrieren und so wie sich das liest lässt es sich ja recht einfach umsetzen. Danke!
Hallo Pascal!, vielen Dank für die sehr gute und äußerst hilfreiche Anleitung!
Die Autorenbox hatte uns noch zur Verbesserung der Kontaktaufnahme der Immobilien Experten auf unserer Experten Plattform gefehlt! Funktioniert einwandfrei!
Danke nochmals und viele Grüsse!
Dipl. Ing. Michael Schröder, Ihre-Immobilien-Experten.de
Sowas macht vor allem Sinn, wenn man ein Blog führt, wo viele verschiedene Authoren tätig sind. Schreibt man ausschließlich selbst, würde ich so ein Fenster in der Sidebar platzieren, wenn ich überhaupt will, dass jeder weiß, wer ich bin.
Ich halte es da eher so, dass ich lieber anonym bleibe und mit meinen Artikeln nur die Basis für Diskussion liefere