Start Uncategorized WordPress: Artikel und Kategorien vom Feed ausschließen
  • WordPress: Artikel und Kategorien vom Feed ausschließen

    5 Min.Lesezeit
    0
    0

    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['posts_per_page'] = get_option('posts_per_rss'); 
            		$q['nopaging'] = 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“.

    Mehr verwandte Artikel laden

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

    Lies bitte auch

    Frohes neues Jahr

    Allen Leserinnen und Lesern des Dreibeinblogs wünsche ich ein frohes, gesundes und erfolgr…