Möchte man in WordPress an beliebiger Stelle, z.B. im Inhalt oder in einer Sidebar, die letzten Blogeinträge einer bestimmten Kategorie auflisten, kann man das über einen Shortcode und ohne Plugin bewerkstelligen.
Inhaltsverzeichnis:
Funktion für ein Kategorie/Beitrags-Listing in WordPress
Zuerst erstellt man eine Funktion in der functions.php des jeweiligen Themes. Diese könnte folgend aussehen:
function showCatentries($atts){ extract(shortcode_atts(array( "catid" => '1' ), $atts)); $temp_query = $wp_query; query_posts('showposts=5&cat='.$catid); while (have_posts()) : the_post(); echo '<div class="catpost" id="post-'; the_ID(); echo '">'; echo '<h3><a href="'; the_permalink(); echo '" rel="bookmark" title="'; the_title(); echo '">'; the_title(); echo '</a></h3>'; if (has_post_thumbnail()) { echo '<div class="threadimg">'; the_post_thumbnail('medium'); echo '</div>'; } the_excerpt(); echo '</div>'; endwhile; wp_reset_query(); } add_shortcode("showCatentries", "showCatentries");?>
Wie bereits geschrieben „könnte“ der Code so aussehen. Wie die Ausgabe gestaltet wird bleibt jedem selbst überlassen. Ich habe mich für die sehr einfache Variante mehrerer echos entschieden. Über die verwendeten Div’s kann das Ganze formatiert werden. Möchte man nur die Links der Kategorie ausgeben, lässt man einfach the_excerpt() weg.
Auf eine genaue Erklärung des Codes verzichte ich an dieser Stelle. Erklärungen zu shortcodes oder query_posts kann man auf http://codex.wordpress.org nachlesen.
Einbinden des Shortcodes für die Kategorieanzeige
Im Content eines Beitrags oder einer Seite fügt man den Shortcode ein und gibt diesem die gewünschte Kategorie-ID mit.
[showCatentries catid=34]
Wo finde ich die Kategorie-ID in WordPress?
Die Kategorie-ID findet man unter Beiträge->Kategorien, indem man mit der Maus über eine entsprechende Kategorie fährt und dann die ID aus der URL liest (siehe Screenshot)
George
Danke! Hier meine Version… hier kann man noch optional die Anzahl posts übergeben bzw. 0 für alle Posts. Und ich benutze hier output buffer von php, um den Inhalt auch an die gewünschte Stelle zu platzieren (dort wo der Shortcode im Beitrag steht).
function showCatEntries($atts){
extract(shortcode_atts(array(„category“ => ‚1‘, ‚count‘ => 10), $atts));
ob_start();
query_posts(‚&cat=‘.$category.($count ? ’showposts=‘.$count : “));
while (have_posts()): the_post();
include(locate_template(‚content-category-testimonials.php‘));
endwhile;
wp_reset_query();
return ob_get_clean();
}
add_shortcode(„showCatEntries“, „showCatEntries“);