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
oderFALSE
$title
(string) String für einen Text über allen auszugebenden Beiträgen
Sie 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.