Sidebar
ein-/ausblenden

WordPress Feeds deaktivieren

Plugin für WordPress SEO

Anzeige

Eine Bereicherung, die viele Websites anbieten und die im Blogumfeld zum Standard gehört ist das Abonnieren der neusten Beiträge via Feed, in welchem Format auch immer.

Setzt man aber WordPress im CMS-Umfeld ein, dann kann es sein, dass man diese Funktionalität nicht benötigt und sie keinen Mehrwert für den Leser darstellt. Sei es, weil es nur statische Seiten gibt oder weil die Beiträge nicht in dieser Form Verbreitung finden sollen.

Für alle diejenigen, die ähnliches mit WordPress machen und die Feed-Funktionalität nicht benötigen zeige ich mal, wie man alle Formate des Feed deaktiviert.

Kein Feed

Im einfachsten Fall, den ich aber grundlegend ablehne, kann man in den Core eingreifen und den entsprechenden Aufruf unterbinden. Der Eintrag findet sich in der wp-settings.php, im Root von WordPress.

require (ABSPATH . WPINC . '/feed.php');

Mit dieser Möglichkeit hat man eine saubere Deaktivierung, ist aber beim nächsten Update gezwungen, diese Änderung wieder einzuarbeiten. Ab WordPress Version 2.7 kann das zur Tortur werden, denn WordPress bietet dann den Mehrwert eines automatischen Updates - Klicken und los geht es.

Eine etwas aufwändigere aber schöne Lösung ist via Hook im Theme oder Plugin möglich. Dazu nimmt man im einfachsten Fall die folgenden Zeilen und kopiert sie in die functions.php des Themes. Gibt es diese Datei nicht, dann einfach anlegen, WordPress erkennt diese.
Damit ist der Feed nicht so ganz weg, aber der Nutzer erhält eine Info. Im Detail heißt das, die URL des Feed bleibt vorhanden, wenn ein Nutzer diese direkt eingibt, es ist aber kein Inhalt im Feed, außer der Text, der im folgenden Code beispielhaft hinterlegt ist.


/**
 * disable feed
 */
function fb_disable_feed() {
	wp_die( __('Kein Feed erreichbar, besuchen Sie doch bitte die <a href="'. get_bloginfo('url') .'">Startseite</a>!') );
}

add_action('do_feed', 'fb_disable_feed', 1);
add_action('do_feed_rdf', 'fb_disable_feed', 1);
add_action('do_feed_rss', 'fb_disable_feed', 1);
add_action('do_feed_rss2', 'fb_disable_feed', 1);
add_action('do_feed_atom', 'fb_disable_feed', 1);

Damit kann man recht einfach und schnell WordPress seinem Feed berauben.
Weitere Anpassungen im Hinblick auf den Kunden mache ich ebenso im Backend, ich zeige den Kunden nur, was er auch sehen muss. Funktionen, die er nicht benötigt für seine Anforderungen, werden ausgeblendet - einfach machbar mit dem Plugin Adminimize.

23 Kommentare und 1 Trackback zu „WordPress Feeds deaktivieren“

  1. 1
    Kommentar von Philip

    Ich weiß nicht genau den Auruf über die WP-API, aber eine Weiterleitung auf die Startseite des Blogs, statt dieser Meldung fände ich auch gut. Weil normalerweise publiziert man die Links zu Feed ja in so einem Fall nicht, und deswegen sollte es keine Probleme geben, wenn der Benutzer direkt weitergeleitet wird.

  2. 2
    Kommentar von Dennis

    Ich weiß zwar nicht woher du es weißt, aber du präsentierst immer dann die passende Lösung, wenn ich sie suche. Tolle Artikel und sehr hilfreiche Informationen, danke.

  3. 3
    Kommentar von Pascal

    Auch bekannt als FeedDisabler Plugin: http://wordpress.org/extend/plugins/feed-disabler/

  4. 4
    Kommentar von Tanja

    Ich bräuchte hier unbedingt die Weiterleitung auf die Startseite. Wie kann man das in diese function integrieren?
    Das Problem ist z.B. auch beim IE, dass dort diese Fehlermeldung überhaupt nicht erscheint und er seinen eigene Brower-Fehlermeldung generiert.

  5. 5
    Kommentar von Frank Bültge

    @Tanja: mit einem Redirect kann man das machen. Entweder via htaccess die URL umleiten oder direkt in WP, z.B. in der functions.php
    wp_redirect( get_option('url') );

  6. 6
    Pingback von RSS Feed deaktivieren | SEO & SEM Marketing Blog
  7. 7
    Kommentar von Philipp

    Hi und DANKE!
    Der Hook im Theme ist eine saubere und feine Lösung, die auch sehr schnell umgesetzt war!

    Gruß aus Köln
    Philipp

  8. 8
    Kommentar von jana

    Danke, damit klappt es endlich!!

  9. 9
    Kommentar von FuNKeR

    Ich werd bei dir einfach immer wieder fündig. Danke für den Tipp.

  10. 10
    Kommentar von Michael

    Hallo Frank,
    gerade habe ich nach einer Möglichkeit gesucht die Feeds komplett zu deaktivieren, da WP ausschließlich als CMS genutzt wird. Dabei bin ich auf folgende Lösung gestossen, die seit WordPress 2.8 möglich ist.

    Einfach diesen Code in die functions.php einfügen:
    automatic_feed_links(false);

  11. 11
    Kommentar von Frank Bültge

    @Michael: damit sind die Feeds nicht deaktiviert, sind sind lediglich aus dem Frontend als Link entfernt. Wer sich ein wenig auskennt, der bekommt den Feed noch immer, Google fndet ihn ebenso und bei diversen Themes ist er damit trotzdem aktiv.

  12. 12
    Kommentar von Michael

    Hallo Frank,
    herzlichen Dank für Deine aufschlussreiche Erläuterung! Und wieder etwas gelernt.
    Dann trage ich nun beide Codeteile in die functions.php ein, dann sollte er komplett weg sein.

  13. 13
    Kommentar von Alex Hager

    Herzlichen Dank für diesen Beitrag. Hab schon eine Zeit lang selbst versucht diese Funktion zu deaktivieren. Bin aber auf keine vernünftige Lösung gekommen.

    Aber, da ist sie!

  14. 14
    Kommentar von Thomas

    Sehr nützlicher Beitrag, gibt es auch eine Möglichkeit nur eine Kategorie aus dem RSS-Feed auszuschließen ??

    Vielen Dank & Internette Grüße
    Thomas

  15. 15
    Kommentar von Frank Bültge

    @Thomas: ja, siehe Post dazu

  16. 16
    Kommentar von Patrick

    Moin Frank,

    ich setze gerade ein CMS mit WordPress auf und musste feststellen, dass automatic_feed_links(false); inzwischen sowohl den Header entfernt als auch eine Fehlermeldung (leider nur auf englisch) anzeigt.

    Des Weiteren existiert die Funktion fb_disable_feed bereits, sodass PHP eine Fehlermeldung ausliefert.

    Schön wäre es ja, wenn WordPress eine Funktion im Adminpanel zum kompletten Deaktivieren der Newsfeeds anbieten würde...

    Gruß
    Patrick

  17. 17
    Kommentar von Frank Bültge

    @Patrick: die Funktion gibt es im Core von WP nicht, extra nochmal geschaut - hätte mich auch gewundert. Eventuell hast du sie schon woanders im Zugriff. Die Lösung sollte also sauber funktionieren.

  18. 18
    Kommentar von Cujo

    Hallo Frank, danke für den Artikel. Dank deiner Hilfe wird bei mir jetzt kein RSS mehr ausgeliefert :)

    Ich hätte aber noch eine Frage: Ist es möglich, den angezeigten RSS-Button in der Browser-Adressleiste ausblenden zu lassen?

  19. 19
    Kommentar von Frank Bültge

    @Cujo: ja, ist aber verschieden - in den meisten Fällen wir der Link zum Feed statisch im Theme, in der header.php, erzeugt; einfach löschen. Es kann aber auch sein, dass er via Funktion in der functions.php erzeugt wird, der auf den Hook wp_head geht, dann diese Funktion deaktivieren.

  20. 20
    Kommentar von Chris

    Hallo,

    ist es irgendwie möglich private Posts aus dem feed auszuschliessen, so dass die "öffentlichen" Beiträge auch weiterhin im feed zur Verfügung stehen?
    Ich habe dazu gesucht, aber nicht wirklich etwas brauchbares bis jetzt gefunden.

    Gruß
    Chris

  21. 21
    Kommentar von Michael Doermann

    Danke erstmal für dieses Tutorial!

    Ich habe das Problem, dass wenn ich die Änderungen durchführe, dass folgende Fehlermeldung erscheint:

    header already sent bla bla bla

    Was mache ich falsch?

  22. 22
    Kommentar von Frank Bültge

    @Michael: klingt nach einem Fehler via PHP

  23. 23
    Kommentar von Patrick

    Klingt für mich nach mod_headers im Apache ist nicht aktiviert.

  24. 24
    Kommentar von Reinhard

    Redirect auf die Startseite geht auch ( etwas unfein ) mit meta refresh:

    function disable_feed(){
    wp_die('
    Feeds nicht aktiviert. Du gleich wirst auf die Startseite weitergeleitet');
    }
    add_action('do_feed', 'disable_feed', 1);
    add_action('do_feed_rdf', 'disable_feed', 1);
    add_action('do_feed_rss', 'disable_feed', 1);
    add_action('do_feed_rss2', 'disable_feed', 1);
    add_action('do_feed_atom', 'disable_feed', 1);

    Oder halt auch mit der javascript-Variante location

Kommentar schreiben

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.

E-Mail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

Kommentar-Hilfe

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 &lt; und > als &gt; 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.