DIREKTKONTAKT

Uncategorized

WordPress: Artikel und Kategorien vom Feed ausschließen

Wie kann man Kategorien und Artikel vom Feed ausschließen? Es mag mannigfaltige Gründe geben, warum man eine ganze Kategorie oder einzelne Artikel nicht in den Feeds haben möchte. Sei es, daß es sich um testweise Veröffentlichungen oder um Werbung handelt, die man den Feed-Lesern nicht zumuten möchte. Hier erkläre ich, wie das geht:


1. Kategorien vom Feed ausschließen:

Dazu loggt man sich ins Admincenter ein und wählt „Kategorien“. Fährt man nun mit der Maus rechts über eine der angezeigten Kategorien, kann man unten in der Statusleiste des Browsers die ID-Nummer ablesen. So ermittelt man die Nummer(n) der Kategorie(n), die man ausgeschlossen wissen will.

Nun öffnet man in einem Editor die Datei functions.php seines Themes.

Dort fügt man diesen Code ein, um eine Kategorie zu benennen:

// feed excluder  category
function myFeedExcluder($query) {
if ($query->is_feed) {
$query->set('cat','-1');
}
return $query;
}
add_filter('pre_get_posts','myFeedExcluder');

Die ID der ausgeschlossenen Kategorie wäre hier also 1.
Möchte man mehrere Kategorien ausschließen, geht das genauso:

// feed excluder  category
function myFeedExcluder($query) {
if ($query->is_feed) {
$query->set('cat','-1,-52,-555,-789');
}
return $query;
}
add_filter('pre_get_posts','myFeedExcluder');

Hier würden jetzt die Kategorien 1, 52, 555 und 789 ausgeschlossen. Immer hübsch mit einem Komme getrennt und einem Minuszeichen vor jeder Nummer.
Zu beachten ist, daß die ID aufsteigend aufgeschrieben werden müssen!

2. Artikel aus dem Feed ausschließen:

Um einzelne Artikel ausschließen zu können, muß man etwas tiefer in die Maschinerie von WordPress eingreifen.
Dazu öffnet man im Verzeichnis /wp-includes die Datei query.php und muss sie editieren.

Etwa bei Zeile 680 (je nach Version) werden die Feeds losgeschickt. Dort editiert man bitte einen Ausschluss hinzu. Die Zeile sieht hinterher so aus:

if ( $this->is_feed ) {
          $where .= " AND SUBSTRING(post_title,1,1) != '*'";
			$q = get_option('posts_per_rss'); 
        		$q = false;

Wichtig ist die Zeile mit dem != ‚*‘

Hat man diese Änderung vorgenommen, lädt man die query.php wieder hoch.
Nun kann man jeden beliebigen Artikel einfach mit einem Sternchen * einleiten und schon erscheint er nicht mehr im Feed.
Statt „Dies ist ein Artikel“ schreibt man dann einfach „*Dies ist ein Artikel“.

Uncategorized

Die Artikel in diesem Weblog sind in Rubriken / Kategorien einsortiert, um bestimmte Themenbereiche zusammenzufassen.

Da das Dreibeinblog schon über 20 Jahre existiert, wurde die Blogsoftware zwei-, dreimal gewechselt. Dabei sind oft die bereits vorgenommenen Kategorisierungen meist verlorengegangen.

Deshalb stehen rund 2.000 Artikel in dieser Rubrik hier. Nach und nach, so wie ich die Zeit finde, räume ich hier auf.

Lesezeit ca.: 3 Minuten | Tippfehler melden | © Revision: 26. November 2012 | Peter Wilhelm 26. November 2012

Lesen Sie bitte auch:


Abonnieren
Benachrichtige mich zu:
guest
0 Kommentare
Inline Feedbacks
View all comments



Rechtliches


0
Would love your thoughts, please comment.x
Skip to content