Sidebar
ein-/ausblenden

WordPress Beiträge in Abhängigkeit der Kategorie ausgeben

Plugin für WordPress SEO

Anzeige

Mitunter will man speziell für eine Kategorie die Beiträge auslisten und dazu ein wenig vom Inhalt bereit stellen. Will man dies innerhalb einer statischen WordPress-Seite machen, so benötigt man entweder ein PHP-Plugin oder man bastelt sich ein Template.

In die statische Seite gehört dann der folgender Code, der die Kategorie 11 ausliest und die letzten 10 Einträge zeigt. Außerdem werden die Wörter des Beitrags gezählt, und sollten sie größer 20 sein, so wird dann ... ausgegeben.

Die Funktion get_post kann mit weiteren Parametern gefüllt werden, so dass noch andere Listen möglich sind.


<ul>
<?php
$MyCat_Content = get_posts('numberposts=10&category=11');
$MyCat_Echo = '';

if (is_array($MyCat_Content)) {
	foreach ($MyCat_Content as $post) {
		$My_Content = strip_tags($post->post_content);
		$words = explode(' ', $My_Content, 21);
		if (count($words) > 20) {
			array_pop($words);
			array_push($words, ' ...');
			$My_Content = implode(' ', $words);
		}
		$MyCat_Echo .= '<li><a href="' . get_permalink($post->ID) . '" title="' . $post->post_title . '">' . $post->post_title . '</a>: ' . $My_Content . '</li>';
	}
}

echo $MyCat_Echo;
?>
</ul>

Darstellen der letzten Beiträge

Der Code-Schnippsel ist nicht zu nutzen, wenn man seinen Lesern die letzten Beiträge aus allen Kategorien zeigen will, dies läßt sich leichter mit der Funktion wp_get_archives machen.


<ul>
	<?php wp_get_archives('type=postbypost&limit=10'); ?>
</ul>

24 Kommentare zu „WordPress Beiträge in Abhängigkeit der Kategorie ausgeben“

  1. 1
    Pingback von frische-zitronen.de » Wordpress Inhalte nach Kategorien ausgeben
  2. 2
    Kommentar von anne

    cool, good job..! eine frage: könnte man dabei auch im post verwendete bilder in kleiner darstellung anzeigen lassen???

  3. 3
    Kommentar von Frank Bültge

    Mit der Abfrage nicht, dazu muss der Content gefiltert werden, so dass der Tag img gefunden wird. Aktuell werden alle html-Tags entfernt.

  4. 4
    Kommentar von anne

    ok, danke für die schnelle info. versuch gerade, mir einen überblick über die zahllosen gallery plugins zu verschaffen..

  5. 5
    Kommentar von Frank Bültge

    Vielleicht gibts du mir eine Info, welches Gallery-Plugin du für das beste hälst?

  6. 6
    Kommentar von anne

    ja - wenn ich mal eins finde, bei dem alles klappt ;o) ich habe bisher immer irgendein problem gehabt, zb mit der anzeige generierter, aber nicht korrekt aufgerufener thumbnails oder aber der bilder selbst. eigentlich hätte ich gern so etwas wie ein photoblog, aber mit der option auch mal zwei bilder in einem post zu haben, mit thumbauslese - und das is bei all den scripts auch ausserhalb von wordpress nie drin (und ich bin kein coder). heul.

  7. 7
    Kommentar von simon.lue

    Bitte keine E-Mail-Benachrichtigung mehr bei neuen Kommentaren zusenden! Vielen Dank!

  8. 8
    Kommentar von Maarz

    Super Sache, endlich nimmt meine News Übersicht eine angemessene Form an. Vielen Dank.

  9. 9
    Pingback von www.zueschen.eu » Blog Archive » Anzeigen aller Beiträge einer Kategorie in einer statischen Seite
  10. 10
    Kommentar von bob

    hallo,
    danke vorweg für die tips, die ich hier immer wieder finde.
    ich hoffe, dass es auch für dieses "problem" eine lösung gibt:
    ich bastle gerade eine seite für einen freund, der folgendes will:
    es gibt die kategorien "rotwein, weisswein, rose, schaumwein" dann noch "spanien, italien". ein artikel kriegt also 2 kats: zb rotwein und spanien.
    jetzt kann ich zwar logisch die inhalte der jew kat ausgeben, ich schaffe es aber nicht, dass er mir 2 bedingungen erfüllt: also zeige mir "NUR" alle rotweine aus spanien. es geht auch nicht, dass ich jeder sorte eine unterkat land gebe, da jeder name nur 1x in der db vorhanden sein darf. ich spiele mich nun schon stunden und recherchiere, komm aber nicht drauf - denke aber eine archivausgabe oder so wäre der richtige weg. BITTE um hilfe, wie ich das lösen könnte. ich nutze wp 2.7
    danke im vorraus
    lg
    bob

  11. 11
    Kommentar von Frank Bültge

    @bob: eventuell helfen die Benutzerdefinierten Felder, wenn man keine Unterkategorie nehmen darf. Damit lassen dich Zuweisungen recht gut steuern.

  12. 12
    Kommentar von bob

    habs jetzt mal anders gelöst, danke trotzdem für den tip mit den benutzerdeffields - habe damit noch nicht experimentiert.
    lg
    bob

  13. 13
    Kommentar von Oranje

    Super, genau das habe ich gesucht. Eine Frage dazu noch:
    Ich hätte gerne vor dem Artikelnamen noch das Veröffentlichungsdatum des Artikels. Kann man das noch ergänzen? Was muss ich dann noch wo einfügen?

    LG
    Oranje

  14. 14
    Kommentar von Frank Bültge

    Dazu ist die NUtzung der Template Tags nötig, die das ja schon immer tun, siehe Codex.

  15. 15
    Kommentar von Maxi

    Hallo Frank,

    vielen Dank für diesen Beitrag, ist mir jetzt schon eine große Hilfe.
    Lediglich bei der Anpassung habe ich ein paar Probleme:
    Ich würde die Ausgabe gerne so gestalten:
    10.10.2009 » Das ist der der Beitragstitel, so wie es bei dir auch schon ist...
    Es soll also immer zunächst das Veröffentlichungsdatum, dann ein » und zu guter letzt der Beitragstitel ausgegeben werden...
    Gibt es eine Möglichkeit, den Titel nicht nach einer bestimmten Anzahl an Worten, sondern nach einer best. Anzahl an Buchstaben "abzuschneiden" - da ich nämlich nur sehr wenig "Platz" für diese Liste zur Verfügung habe, ist die Anzahl an Worten etwas zu "ungenau".

    DANKE dir scho mal für deine Hilfe,
    einen schönen Tag noch,
    LG

  16. 16
    Kommentar von Frank Bültge

    @Maxi: via substr solltest du das passende finden

  17. 17
    Kommentar von Marcus Maier

    Ich habe leider von PHP nicht so viel Ahnung ich versuche gerade diese Textauszüge mit rein zu kriegen anstelle des Post Inhalts, ich habe einfach versucht folgendes dazwischen ein zu fügen:
    the_excerpt()
    das wird aber leider nur einmal und nur vom ersten Beitrag ausgegeben. Kann mir jemand helfen?

  18. 18
    Kommentar von ninji

    super! =)

  19. 19
    Kommentar von klaus-peter

    Leider komme ich nicht weiter. Mein System hat Seiten, Unterseiten und parallel identische benannte Kategorien und Unterkategorien -siehe http://blogwp.kp-prosim.de/prozessleittechnik/strecken/
    Jetzt sollen nur die Artikel der jeweiligen Seite in der Kategorie gleichen Namens aufgerufen werden. Das klappt bei Unterseiten bzw. Unterkategorien, aber bei Aufruf der Oberseite, der ebenfalls Artikel zugeordnet sind, werden alle Artikel, also auch Artikel der Unterseiten angezeigt. Alle Versuche das zu unterbinden sind bisher gescheitert. Vielleicht kannst du mir helfen?

  20. 20
    Kommentar von Frank Bültge

    @klaus-peter: seiten und Artikel haben erst mal keine Gemeinsamkeit, da muss man was erdenken. Man kann den Seiten Kategorien mitgeben oder man erstellt eine Funktion, die die Seiten und die zugehörigen Kategorie abfragt, dann wird dies im Frontend abgefragt.

  21. 21
    Kommentar von PE

    Hallo zusammen! Kann mir jemand helfen? Ich kenne mich leider nicht so gut mit PHP aus! Ich würde gerne dem oberen Code "get_post" ein Limit vom 2 Beiträgen anhängen!
    Aber ich bekomme es einfach nicht hin!
    Kann jemand den Code posten?
    Liebe Grüße

  22. 22
    Kommentar von Arne Rietzmann

    Vielen Dank für deinen Tipp, aber ich habe nur eine kurze Frage: Ich habe personlisiertes Theme - wo soll ich dann den Code einfügen? page.php? Archiv.php?

  23. 23
    Kommentar von Frank Bültge

    @Arne: normalerweise würde ich dafür eine Page einrichten, die als Template für eine Seite des backend dient.

  24. 24
    Kommentar von Thomas Loschen

    Der code-schnipsel funktioniert sehr gut, vielen Dank. Ich brauche aber den Text aus dem Post inklusive html-tags. Wie entferne ich "strip_tags($post->post_content);" und bekomme in die den kompletten Inhalt des Posts?
    Den Titel und den Permalink möchte ich auch nicht anzeigen, was aber ja keine Schwierigkeit ist...
    Über eine Antwort würde ich mich freuen.

  25. 25
    Kommentar von Frank Bültge

    @Thomas: nimm strip_tags() weg und schon ist das HTML mit drin, die Funktion ist genau dafür da, ohne HTML; post_content enthält alles.

  26. 26
    Kommentar von Thomas Loschen

    Hallo Frank,
    vielen Dank, hat funktioniert. Für alle DAUs wie mich: Die Zeile heisst dann: " $My_Content = $post->post_content;"
    Gruss, Thomas

Kommentare sind geschlossen.