Für Menschen · Seien Sie begeistert und Sie werden begeistern !
Den Leser auf der Site halten ist nicht immer einfach. Es gilt Information zu bieten und es fällt schwer, gerade in Blogs, die alten Beiträge wieder dem Leser zugänglich zu machen. In dem Zusammenhang könnte man dem Leser Beiträge anbieten, die aus der gleichen Kategorie kommen und den Leser auf der Site halten. Warum nicht, dazu reicht eine kleine Funktion, die auf Basis der Kategorie-ID ähnliche Beiträge listet.
Die folgende kleine Funktion, abgelegt als Plugin oder in der functions.php des Themes, gibt Beiträge in Abhängigkeit der Kategorie aus. Die Funktion lässt drei Parameter zu:
$limit (int) Anzahl der auszugebenden Beiträge$catName (bool) Kategoriename ausgeben, TRUE oder FALSE$title (string) String für einen Text über allen auszugebenden BeiträgenSie hat keine direkte Ausgabe, so dass man die Inhalte auch übergeben kann. Will man sie im einfachsten Fall in einem Template einsetzen, zum Beispiel im Sidebar, dann die sidebar.php, ist folgende Syntax aufzurufen: echo fb_cat_related_posts();.
function fb_get_cat_related_posts( $limit = 5, $catName = TRUE, $title = '<h3>Recent Pages</h3>' ) {
if ( !is_single() ) // nur bei Beiträgen eine Ausgabe, kann angepasst/gelöscht werden
return;
$limit = (int) $limit;
$output = '';
$output .= $title;
$category = get_the_category();
$category = (int) $category[0]->cat_ID;
if ( $catName )
$output .= __( 'Kategorie: ' ) . get_cat_name($category) . ' ';
$output .= '<ul>';
$args = array(
'numberposts' => $limit,
'category' => $category,
);
$recentposts = get_posts( $args );
foreach($recentposts as $post) {
setup_postdata($post);
$output .= '<li><a href="' . get_permalink($post->ID) . '">' . get_the_title($post->ID) . '</a></li>';
}
$output .= '</ul>';
return $output;
}
Die Funktion stellt nur eine Basis dar und kann natürlich beliebig erweitert werden. Ebenso könnte man diverse Abfragen integrieren, so dass wenn es keine Artikel gibt, auch keine Überschrift ausgegeben wird.
Aktuell werden auch die Beiträge der Unterkategorien gelistet.
Viel Spass damit, vielleicht hat der eine oder andere nützliche Erweiterungen und legt die dann hier in den Kommentaren ab.
Kommentarregeln: Bleib cool, kritisch ist in Ordnung, aber wenn du unhöflich bist, dann lösche ich deinen Kommentar. Bitte benutze deinen persönlichen Namen oder Initialen und nicht den Namen eines Unternehmens, dies würde als Spam gewertet und wird gelöscht. Der Zusammenhang zwischen Namen und URL sollte nicht offensichtlich auf Spam hindeuten! ♥ Ansonsten, vielen Dank für den Kommentar und viel Spaß mit meinem Blog.
händischer Spam:
Beachte die Kommentarregeln, jede Form von versuchtem Spam wird gelöscht. Warum und wieso steht in einem meiner Beiträge.
Bezug auf Textstellen:
Du kannst direkt bezug auf Textstellen im Beitrag nehmen. Dazu muss lediglich der Bereich im Artikel markiert werden; daraufhin erscheint ein Button, der den markierten Text in das Kommentarfeld übernimmt und als Zitat auszeichnet. Die Funktion ist nur bei aktivem JavaScript nutzbar.
xHTML:
Du kannst folgende Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <pre> <em> <strong> <strike> <ul> <ul> <li>
Achte darauf, wenn du Code im Kommentar hinterlegen willst, dann muss der Code maskiert sein. Dann wird er nicht interpretiert. Der Code muss mit Hilfe von HTML-Entities dargestellt werden, d.h. dass man z.B. < als < und > als > einfügt.
E-Mail-Benachrichtigung bei neuen Kommentaren ?
Wenn der Haken in der Checkbox gesetzt ist, dann wirst du über neue Kommentare vie E-Mail informiert. Der Versand erfolgt nur, wenn du die URL in der Bestätigungs-E-Mail genutzt hast oder schon Abonnent hier im Blog bist.
Kommentar erscheint nicht:
Alle Kommentare werden manuell geprüft, freigegeben und nach Möglichkeit beantwortet. Bitte um etwas Geduld und Nachsicht.
Identifikationsbilder (Avatare):
Auf Gravatar.com kann man sich mit seiner E-Mail-Adresse registrieren und ein Bild hochladen, dann erscheint dieses Gravatar hier und in vielen weiteren Blogs.
Spamschutz:
Das Kommentarformular ist mit einem Spamschutz ausgerüstet. Solltest du diesen Artikel ohne JavaScript besuchen und kommentieren wollen, so muss du die Frage beantworten und das jeweilige Wort in das Textfeld eingeben.
bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.
Das Weblog wird angetrieben von WordPress und aktuell gibt es 892 Beiträge, 16496 Kommentare in 14 Kategorien und 450 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet.
Design und Code ist unter Copyright
© 2001 - 2010 bueltge.de [by:ltge.de]
14. Juli 2009 um 23:38
Es gibt auf jeden Fall ein "Related Posts by Category"-Plugin von Sergej:
http://playground.ebiene.de/356/related-posts-by-category-wp-plugin-fur-verwandte-beitrage-einer-kategorie/Ich mach das ja gar nicht auf meinem Blog. Ich sortiere die Beiträge weder nach Kategorien noch tagge ich sie. Daher konnte ich das Plugin auch noch nicht testen, aber es ist bestimmt ganz gut.
15. Juli 2009 um 00:20
Ich habe gerade 10 Minuten herumgetüftelt und immer einen Parser-Fehler bekommen. Ursache war ein fehlendes
};ganz am Ende des Codes.Jetzt kann ich es mal ausprobieren
15. Juli 2009 um 06:17
Hallo, kurze frage: Ist es auch möglich eine derartige funktion in der single.php zu nutzen? Ich nutze leider einige Plugins die mit den bekannten Plugins für ähnliche Beiträge nicht funktionieren. zumindest auf meiner Seite nicht.
Besten Dank und weiter so
15. Juli 2009 um 08:11
Du bist ein Medium. Punkt. Habe grad das halbe Internet nach einem Related Posts Plugin durchsucht, das speziellen Schwerpunkt auf Kategorien legt. Dann Denk ich mir: Mal schauen, was Frank so an Artikeln zu dem Thema anzubieten hat und der erste (Man sollte das eigentlich so schreiben: DER ERSTE) Artikel auf der Startseite behandelt genau das, was ich eigentlich suche: Ich schreib mir die Funktion einfach selber.
Ich halte meine linke Sandale hoch. Im Ernst
15. Juli 2009 um 09:08
@René: die Funktion kannst du überall nutzen, einfach den Aufruf der Funktion in die
single.phpoder wo auch immer, und fertig. Dabei ist mir aufgefallen, dass ich das nicht erklärt habe, hole ich sofort nach.15. Juli 2009 um 09:10
Soweit ich das gesehen habe, funktioniert die Funktion "ausschließlich" auf der Single, da das an erster Stelle abgefragt wird... Ah und die schließende Klammer am Ende brauch ich nicht mehr erwähnen
15. Juli 2009 um 09:12
@Johannes: die Ausgabe ist in meinem Beispiel nur dann, wenn es sich um einen Beitrag (single) handelt, ja und dein Hinweis habe ich gerade gefixt, danke.
15. Juli 2009 um 16:31
Ich liste selber auf meiner Seite ähnliche Beiträge auf, die in jedem Artikel unten erscheinen, maximal zehn. So hat der Leser wirklich einen Mehrwert und die alten Artikel werden so auch wieder hervorgeholt.
15. Juli 2009 um 18:23
@JakobD: hat wunderbar funktioniert. Ich weiß das ich dieses Plugin bereits ausbrobiert habe. Vielleicht liegt es auch am Update auf WP-2.8.1
Danke
15. Juli 2009 um 20:45
Für mich war das bisher Neuland, mal wieder was dazu gelernt! Danke
17. Juli 2009 um 20:51
In der single.php rufe ich mit
echo fb_get_cat_related_posts();die Funktion auf und es funktioniert soweit bis auf den Zähler der Kommentare.
Ein Fehler führt dazu, dass die nachfolgende Funktion
comments_number('Kein Kommentar', '1 Kommentar', '% Kommentare' )in allen Fällen Kein Kommentar ausgibt.
Ich kann den Fehler bisher nicht finden. Hat jemand eine Idee?
17. Juli 2009 um 22:18
Auf jeden Fall danke für den Tipp. Auch wenn man mein PHP sehr begrenzt ist.
22. Juli 2009 um 03:10
Was soll das für eine Funktion sein wenn ich Fragen darf? Habe ich noch nie in PHP gesehen: also "__($param)":
22. Juli 2009 um 08:22
@Sebastian: dies ist eine Funktion von WordPress für die Unterstützung der Mehrsprachigkeit, keine Funktion von PHP.
24. Juli 2009 um 21:40
@tanalahy & Frank: Da gibt es ein klitzekleines Problemchen: Die Funktion startet einen Loop innerhalb des aktuellen WordPress Loops - Dh. Am Ende der Schleife steht $post auf dem letzten ähnlichen Artikel. Wenn jetzt nach Aufruf der Funktion zB. das Kommentar-Template eingebunden wird, steht zu dem Zeitpunkt was falsches in der $post-Variable: Man kommentiert dann in Wirklichkeit für den letzten der angezeigten ähnlichen Artikel
Simple Solution: Am Anfang der Funktion die aktuelle $post sichern:
global $post;$originalPost = $post;
In PHP5 muß man wahrscheinlich noch ein clone davorsetzen:
global $post;$originalPost = clone $post;
Am Schluß (direkt vor dem return) die $post-Variable wieder restaurieren:
$GLOBALS['post'] = $originalPost;setup_postdata($originalPost);
Dann funktioniert auch mit dem Nachbarn... äh den Kommentaren
lG aus Salzburg!
Ein Ösi
25. Juli 2009 um 00:23
@Johannes: das mit dem falsch adressierten Kommentar habe ich schon bemerkt, jetzt sind mir die Gründe klar. Danke.