WordPress Feeds deaktivieren

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.

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 8 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet.

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 );

//Links im head unterbinden
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'feed_links_extra', 3 );
remove_action( 'wp_head', 'rsd_link', 10 );
remove_action( 'wp_head', 'wlwmanifest_link', 10 );

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.

Comments are closed.