Für Menschen · Seien Sie begeistert und Sie werden begeistern !
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>
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>
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 980 Beiträge, 18722 Kommentare in 14 Kategorien und 464 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet. Erstellt mit ♥ zum Befüllen und Erhalten.
Design und Code ist unter Copyright
© 2001 - 2012 bueltge.de [by:ltge.de]
15. Februar 2007 um 15:39
24. Februar 2007 um 20:32
cool, good job..! eine frage: könnte man dabei auch im post verwendete bilder in kleiner darstellung anzeigen lassen???
26. Februar 2007 um 12:08
Mit der Abfrage nicht, dazu muss der Content gefiltert werden, so dass der Tag img gefunden wird. Aktuell werden alle html-Tags entfernt.
27. Februar 2007 um 14:29
ok, danke für die schnelle info. versuch gerade, mir einen überblick über die zahllosen gallery plugins zu verschaffen..
27. Februar 2007 um 15:13
Vielleicht gibts du mir eine Info, welches Gallery-Plugin du für das beste hälst?
27. Februar 2007 um 17:00
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.
28. Februar 2007 um 12:28
Bitte keine E-Mail-Benachrichtigung mehr bei neuen Kommentaren zusenden! Vielen Dank!
13. November 2007 um 04:42
Super Sache, endlich nimmt meine News Übersicht eine angemessene Form an. Vielen Dank.
10. Mai 2008 um 21:19
7. Januar 2009 um 15:17
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
7. Januar 2009 um 16:42
@bob: eventuell helfen die Benutzerdefinierten Felder, wenn man keine Unterkategorie nehmen darf. Damit lassen dich Zuweisungen recht gut steuern.
7. Januar 2009 um 21:55
habs jetzt mal anders gelöst, danke trotzdem für den tip mit den benutzerdeffields - habe damit noch nicht experimentiert.
lg
bob
14. Februar 2009 um 21:55
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
17. Februar 2009 um 09:24
Dazu ist die NUtzung der Template Tags nötig, die das ja schon immer tun, siehe Codex.
14. Dezember 2009 um 11:50
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
15. Dezember 2009 um 13:40
@Maxi: via substr solltest du das passende finden
17. August 2010 um 19:58
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?
30. September 2010 um 16:30
super! =)
8. November 2010 um 19:08
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?
8. November 2010 um 20:05
@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.
14. Januar 2011 um 00:03
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
30. März 2011 um 16:19
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?
31. März 2011 um 14:29
@Arne: normalerweise würde ich dafür eine Page einrichten, die als Template für eine Seite des backend dient.
10. Februar 2012 um 16:30
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.
13. Februar 2012 um 15:21
@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.15. Februar 2012 um 14:19
Hallo Frank,
vielen Dank, hat funktioniert. Für alle DAUs wie mich: Die Zeile heisst dann: " $My_Content = $post->post_content;"
Gruss, Thomas