Für Menschen · Seien Sie begeistert und Sie werden begeistern !

WordPress stellt dem Leser eine Vielzahl an unterschiedlichen Feeds bereit, nähere Erläuterungen wurden bereits im Artikel „Feed-Adressen unter WordPress“ beschrieben.
Da WordPress aber auch des öfteren als Nicht-Weblog-System verwandt wird, kann es sein, dass die Feed-Ausgabe an diesen Stellen nicht ausreicht und man bestimmte Inhalte mischen möchte um den Lesern einen entsprechenden Feed zur Verfügung zu stellen. WordPress ist dahingehend gerüstet und flexibel genug um auch diese Anforderung zu erfüllen. Wie man das macht und wie man es in einem Theme komfortabel per Funkion einbaut, dazu in diesem Artikel einige Worte und Code-Schnipsel.
Der Template Tag query_posts ist sehr mächtig und kann in diesem Fall auch weiter helfen, so ist kein Eingriff in den Core oder eine Erweiterung des Systems nötig.
Um aber das Prinzip ein wenig besser zu verstehen und sich den Zusammenbau eines Feed zu erleichtern, im Vorfeld einige Hinweise und Grundlagen zu Feeds in WordPress.
WordPress bietet die vier Feed-Formate RDF, RSS 0.92, RSS 2.0 und ATOM 1.0 (seit WP V2.*) an. Diese können im Standard auf Beiträge, Kommentare und alle Inhalte eines Archiv erstellt werden - so zum Beispiel Kategorien oder Tags. Einige Beispiele zum Verständnis.
http://example.de/?feed=rdfhttp://example.de/?feed=rsshttp://example.de/?feed=rss2http://example.de/?feed=atomhttp://example.de/?feed=rss2&?tag=examblehttp://example.de/feed/rdfhttp://example.de/feed/rsshttp://example.de/feedhttp://example.de/feed/atomhttp://example.de/tag/examble/feed/Nun soll der Feed auf Basis von Kategorien erstellt werden und das Erstellen eines Feeds, in dem verschiedene Kategorien ausgeschlossen werden, wird ebenso realisiert. Alle Beispiele basieren dabei auf dem Format RSS2. Analog zu den im Vorfeld aufgezeigten Möglichkeiten können auch andere Formate erstellt werden.
http://example.de/feed?cat=23http://example.de/feed?cat=12&cat=13&cat=33http://example.de/feed?cat=-23http://example.de/feed?cat=-12&cat=-13&cat=-33Vor allem die zweite Möglichkeit zeigt deutlich auf, dass man Feeds erstellen und die unterschiedlichen Kategorien mischen kann. So kann man, besonders interessant bei Websites mit einem vielschichtigen Angebot an Themen, spezifische Feeds für die unterschiedlichen Zielgruppen erstellen.
Nun ist diese Form zwar recht einfach und schnell erstellt, aber damit steht keine Funktion beriet, die man einfach an verschiedenen Stellen nutzen kann. Aber die Themes in WordPress lassen die Erweiterung via PHP zu uns so kann man sich eine oder mehrere Funktionen erstellen und diese, abgelegt in der functions.php des Themes, nutzen. Auch dazu ein Beispiel.
function fb_cat_exclude($query) {
if ($query->is_feed) {
$query->set('cat','-12,-13,-33');
}
return $query;
}
add_filter('pre_get_posts','fb_cat_exclude');
Das obige Beispiel erstellt eine Funktion, die einen Feed aus allen Bereichen, außer Kategorie mit ID 12, 13 und 33 enthält. Mit Hilfe der Filter-Hooks wird diese Funktion an den den Query übergeben. Damit wird in das Herz von WordPress zum Erstellen der Ausgabe eingegriffen. Mit Hilfe des Conditional Tag is_feed() wird dafür gesorgt, dass das Entfernen der drei Kategorien nur im Feed statt findet.
Damit steht Ihnen ein mächtiges Werkzeug zur Verfügung, der Leser konsumiert die Inhalt, die Sie in den Bereichen erstellen wollen. Ebenso kann man so die Inhalte des Feeds beeinflussen und auf spezielle Anforderungen gestalten.
Kommentarregeln: Bleib cool, kritisch ist in Ordnung, aber wenn du unhöflich bist, dann lösche ich deinen Kommentar. Bitte benutze deinen persönlichen Namen oder Initialen und nicht den Namen eines Unternehmens, dies würde als Spam gewertet und wird gelöscht. Der Zusammenhang zwischen Namen und URL sollte nicht offensichtlich auf Spam hindeuten! ♥ Ansonsten, vielen Dank für den Kommentar und viel Spaß mit meinem Blog.
händischer Spam:
Beachte die Kommentarregeln, jede Form von versuchtem Spam wird gelöscht. Warum und wieso steht in einem meiner Beiträge.
Bezug auf Textstellen:
Du kannst direkt bezug auf Textstellen im Beitrag nehmen. Dazu muss lediglich der Bereich im Artikel markiert werden; daraufhin erscheint ein Button, der den markierten Text in das Kommentarfeld übernimmt und als Zitat auszeichnet. Die Funktion ist nur bei aktivem JavaScript nutzbar.
xHTML:
Du kannst folgende Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <pre> <em> <strong> <strike> <ul> <ul> <li>
Achte darauf, wenn du Code im Kommentar hinterlegen willst, dann muss der Code maskiert sein. Dann wird er nicht interpretiert. Der Code muss mit Hilfe von HTML-Entities dargestellt werden, d.h. dass man z.B. < als < und > als > einfügt.
E-Mail-Benachrichtigung bei neuen Kommentaren ?
Wenn der Haken in der Checkbox gesetzt ist, dann wirst du über neue Kommentare vie E-Mail informiert. Der Versand erfolgt nur, wenn du die URL in der Bestätigungs-E-Mail genutzt hast oder schon Abonnent hier im Blog bist.
Kommentar erscheint nicht:
Alle Kommentare werden manuell geprüft, freigegeben und nach Möglichkeit beantwortet. Bitte um etwas Geduld und Nachsicht.
Identifikationsbilder (Avatare):
Auf Gravatar.com kann man sich mit seiner E-Mail-Adresse registrieren und ein Bild hochladen, dann erscheint dieses Gravatar hier und in vielen weiteren Blogs.
Spamschutz:
Das Kommentarformular ist mit einem Spamschutz ausgerüstet. Solltest du diesen Artikel ohne JavaScript besuchen und kommentieren wollen, so muss du die Frage beantworten und das jeweilige Wort in das Textfeld eingeben.
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 892 Beiträge, 16496 Kommentare in 14 Kategorien und 450 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet.
Design und Code ist unter Copyright
© 2001 - 2010 bueltge.de [by:ltge.de]
21. Oktober 2008 um 11:03
Ein toller Beitrag, danke! Habe es gerade ausprobiert, funktioniert wunderbar! Gibt es eine Möglichkeit den Feed ohne Dein Plugin mit einem Copyright zu versehen? Ich nutze die Ausgabe der verkürzten Version, somit werden die Vorgaben des Plugin im Feed nicht mit ausgegeben.
21. Oktober 2008 um 11:12
@Nicki: Das Plugin kann auch die Ausgabe, wenn es sich um gekürzte Feeds handelt. Dazu musst du lediglich den Haken an der Checkbox "Short Feed" (Also attach on short version of the feed? ... ) setzen. Das kann man auch ohne Plugin machen, dazu muss man aber eine Funktion, quasi das Plugin in das Theme integrieren.
21. Oktober 2008 um 11:13
oh da hab ich was übersehen... besten Dank!
21. Oktober 2008 um 11:28
Sehr interessant, wusste noch nicht dass man die Feeds so leicht beeinflussen kann - das gibt Ideen für ganz neue Benutzerinteraktionsmöglichkeiten (was für ein Wort...). Danke.
16. November 2008 um 15:29
Sehr schön erklärt und leicht nachvollziehbar wenn man sich ein wenig mit der Materie auseinandergesetzt hat. Werde meinen Feed gleich mal umbauen.
15. Januar 2009 um 10:59
Hallo Frank,
sehr hilfreich, Du bist wirklich der WordPress-Profi! Kategorien includieren kannte ich aber excludieren finde ich um Einiges besser..Danke Dir!
Bis dann
28. März 2009 um 10:40
Preisfrage
Ich will die Funktion nutzen, sprich aus allen Feed die Kategorie 1234 ausschließen.
Aber für genau diese Kategorie will ich auch den Feed
http://example.de/feed?cat=1234bereit stellen.Wie löse ich das? Denn die Funktion wird ja dann quasi global?
Funktioniert sowas in dem Fall:
if ($query->is_feed && !is_category('1234') {
28. März 2009 um 11:52
@MArc: in dem du einen neuen Feed erstellst, die die untere Beispielfunktion. Du bietest quasi einen Feed ohne cat 1234 und einen Feed nur 1234 an. Im header verlinkst du beide Feeds und damit können dann auch diverse Browser beide Feeds aggregieren.
29. März 2009 um 10:53
Hm ja... Aber momentan haben ja schon einige den "/feed/" abonniert, von daher würde ich ihn schon gerne mittels $query beschränken und gleichzeitig einen Feed haben, der genau diese ausgeschlossene Kategorie anbietet.
Ich nehme an, meine oben genannte Code-Idee würde nicht funktionieren?
30. März 2009 um 08:53
den bestehenden Feed kürzt du, in dem du die Kategorie entfernst und deine einzelne Kategorie gibst du für einen neuen Feed frei. Damit bleiben deine Abonnenten erhalten.
12. Juni 2009 um 10:33
Ich setze das Plugin extra-feed-links ein. Damit hat man schnell Feeds für Kategorien oder Tags. Danke für den Code, eine beliebige Kategorie wird nun ausgeschlossen. Ist es möglich, auf der Frontpage z.B.
http://www.testseite/feedeine Kategorie auszuschließen, die aber beihttp://www.testseite/tag/quatsch/feedwieder zuzulassen? Ich habe eine Kategorie ausgeschlossen, nie nicht so ins Schema meiner Seite passt, die soll auf der Frontpage nicht erscheinen, als Tag-Feed aber schon.Wolf
12. Juni 2009 um 14:43
@Wolf: zum Verständnis, WordPress bietet immer zum Tag oder Kategorie einen Feed an, ohne Plugin. Die Feeds sind immer da, es sei denn man schaltet sie via Filter explizit ab. Ansonsten ist das Listen von Feeds im head des Blog eine Sache des Frontend, die im Theme eingebaut ist.
18. Januar 2010 um 11:45
Hallo,
super erklärt.
Aber eine Frage hätte ich noch.
Wenn man mehrere Autoren in einem Blog hat, gibt es da die Möglichkeit Artikel von verschiedenen Benutzern aus dem Feed auszuschliessen?
Gruß
Christi
18. Januar 2010 um 12:44
@Christian: da sollte es ein Plugin geben, da man ja jedem Beitrag ein Flag mitgeben muss. Ich bin aber der Meinung, dass ich sowas schonmal gesehen habe.
25. Februar 2010 um 14:24
Hallo,
kann es sein, dass das Skript in Zusammenarbeit mit dem feedburner nicht funktioniert?
Gruß
Christian
25. Februar 2010 um 14:29
na ja es geht auch anders mit dem feedburner. Wenn man bei den Einstellungen des feedburners als Original-Feed Adresse
http://example.de/feed?cat=-23übergibt, schluckt es auch der feedburner.Gruß
Christian