Kategorien
(Free-) Software PHP Programmierung Websiteerstellung Wordpress

WordPress: Artikelliste in Seite anzeigen

Seiten werden in den meisten Fällen für statische Inhalte genutzt, Artikel für (Blog-) Beiträge.
Aber was tun, wenn man die vorhandenen Artikel dynamisch als Linkliste in eine Seite integrieren will, um so auch um diese Liste herum noch fixen Content erfassen zu können?

Hier hilft eine kleiner Codeschnippsel in der functions.php.
Diese Datei liegt im Templateverzeichnis, sollte sie nicht vorhanden sein, einfach anlegen.

Dort folgenden Code einfügen:

// Kategorie-Tag im Content durch Artikelliste der Kategorie ersetzen
function insert_catlist( $article ) 
{
  // Kategorienr. holen - muss 3-stellig vorgegeben werden!
  $Suche = '##cat';
  $MyCat = substr($article, strpos($article, $Suche)+5, 3);

  $MyCat_Content = get_posts('category='.$MyCat.'&orderby=menu_order&order=ASC');
  $MyCat_Echo = '
'; if (is_array($MyCat_Content)) { foreach ($MyCat_Content as $post) { if ($post->post_excerpt) { $My_Content = $post->post_excerpt; } else { //$My_Content = $post->post_content; $My_Content = $post->post_excerpt; } $MyCat_Echo .= '

' . $post->post_title . '

' . $My_Content . ''; //$MyCat_Echo .= '

' . $post->post_title . '

' . $post->post_excerpt . ''; } } $MyCat_Echo .= '
'; $article = str_replace('##cat'.$MyCat.'##', $MyCat_Echo , $article); return $article; } // Filter der die Funktion zum Einsetzen des eigenen Codes aktiviert add_filter('the_content', 'insert_catlist', 2);

Jetzt steht ein neuer Tag zur Verfügung, der an beliebiger Stelle in jede Seite oder auch Artikel eingefügt werden kann:

##cat123##

Dabei steht hier die ‚123‘ für die Kathegorie-Nr. und muß zwingend immer dreistellig, ggf. mit führenden Nullen, angegeben werden.

Über weitere/andere Vorgaben im get_posts kann der Inhalt der Liste noch beeinflußt werden…

Die Basis für dieses Script stammt von Frank Bültge und wurde entsprechend erweitert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert