Für Menschen · Seien Sie begeistert und Sie werden begeistern !
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.

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.
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 971 Beiträge, 19448 Kommentare in 14 Kategorien und 459 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet. Erstellt mit ♥ zum Befüllen und Erhalten.
Design und Code ist unter Copyright
© 2001 - 2012 bueltge.de [by:ltge.de]
17. Oktober 2008 um 15:40
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.
17. Oktober 2008 um 16:03
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.
17. Oktober 2008 um 16:04
Auch bekannt als FeedDisabler Plugin:
http://wordpress.org/extend/plugins/feed-disabler/19. November 2008 um 14:20
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.
19. November 2008 um 14:57
@Tanja: mit einem Redirect kann man das machen. Entweder via htaccess die URL umleiten oder direkt in WP, z.B. in der
functions.phpwp_redirect( get_option('url') );12. Dezember 2008 um 11:57
14. Dezember 2008 um 00:02
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
16. Februar 2009 um 19:15
Danke, damit klappt es endlich!!
6. April 2009 um 10:17
Ich werd bei dir einfach immer wieder fündig. Danke für den Tipp.
6. September 2009 um 01:29
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);6. September 2009 um 18:10
@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.
6. September 2009 um 19:49
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.
1. November 2009 um 15:12
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!
29. April 2010 um 11:42
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
29. April 2010 um 22:15
@Thomas: ja, siehe Post dazu
20. August 2010 um 11:45
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_feedbereits, 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
25. August 2010 um 16:24
@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.
9. Oktober 2010 um 15:56
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?
9. Oktober 2010 um 20:02
@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 derfunctions.phperzeugt wird, der auf den Hookwp_headgeht, dann diese Funktion deaktivieren.8. November 2010 um 09:30
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
1. März 2011 um 14:43
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?
2. März 2011 um 15:37
@Michael: klingt nach einem Fehler via PHP
2. März 2011 um 15:50
Klingt für mich nach mod_headers im Apache ist nicht aktiviert.
13. April 2011 um 05:25
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