Artikelformat

WordPress 3.1: Kategorien nicht im Haupt-Feed anzeigen

Bildschirmfoto 2011 03 30 um 16 51 19

Seit dem Update von WordPress auf Version 3.1 hatten wir hier in diesem Blog das Problem, dass WordPress die „Freebies“-Kategorie zwar erfolgreich aus dem Haupt-Feed entfernt hat. Nebeneffekt war aber leider auch, dass der normale Kategorie-Feed (…/category/freebies/feed) nun auch nicht mehr funktionierte. Ein langes Ärgernis.

Scheinbar hat sich doch ein wenig diesbezüglich am Unterbau von WordPress geändert. Alle von mir ausprobierten Plugins, die man nutzen kann, um bestimmte Artikelkategorien auszublenden wurden angepasst. Populäre Beispiele für diese Plugins sind:

Wir benutzen hier letzteres, weil es dazu auch noch ein Widget für die Sidebar bereitstellt. So kann man auch auf Artikel hinweisen, die man nicht im normalem Feed hat.

Es gibt natürlich auch die Variante ohne Plugin, dazu passt man eine eventuell schon bestehende Funktion im Theme an, um bestimmte Kategorien auszuschliessen. Hier funktionierte bis dato folgender Code:

function myFeedExcluder($query) {
 if ($query->is_feed) {
   $query->set('cat','-177');
 }
return $query;
}
add_filter('pre_get_posts','myFeedExcluder');

Richtig ist jetzt aber:

function exclude_category($query) {
	if ( $query->is_feed && $query->query_vars['all'] != 'true' ) {
		$query->set('category__not_in', array(473,281));
	}
	return $query;
}
add_filter('pre_get_posts', 'exclude_category');

Der wichtige Unterschied ist die Abfrage der Kategorien: „set(‚category__not_in‘, array(473,281))„. Mittels einem Hotfix (kommt als WordPress Plugin) lässt sich auch das alte WordPressverhalten wiederherstellen. Oben genannte Plugins hatten schon alle nachgerüstet und sich der neuen „API“ angepasst. Leider war ich also noch keinen Schritt weiter. Aber ich kam der Problem etwas näher auf die Spur.

Meine persönliche Quick&Dirty Lösung ist eine Anpassung der Sideblog Plugins, in der eben die genannte Abfrage mit einer Ausnahme (Kategorie?) erweitert wurde. Recht simple und funktioniert. Warum sich dieses Verhalten in WordPress 3.1 geändert hat, ist mir ein Rätsel. Es gibt aber bestimmt gewichtige Gründe.

if ( $wp_query->query_vars[ 'category_name' ] )
        return;

Und damit ich diesen Hotfix nicht vergesse, habe ich ihn mal für die „Ewigkeit“ aufgeschrieben, denn das nächste Update kommt bestimmt.

Vielen Dank noch mal an alle Tippgeber (insbesondere y3kdeapple_gadgets, madnil, jaxxostefan_graf – Danke!!!) Und entschuldigt bitte, wenn euch ein paar Artikel in letzter Zeit um die Ohren geflogen sind.

Der Freebies Feed funktioniert also wieder und wird dementsprechend mit lohneswerten und kostenlosen Programmen und Spielen rund um iPhone, Mac und co. befüllt.

Links
siehe auch
http://feeds.feedburner.com/aptgetupdate-freebies

Autor: Oliver

Ich bin Oliver und habe den aptgetupdateDE Blog im Juli 2007 aus der Taufe gehoben. Man findet mich auch auf Twitter.

4 Kommentare