Websupporter

Vor allem über WordPress.

So schaltest Du die WordPress REST API ab.

Die Entwicklung der WordPress REST API ist sicherlich eine der spannendsten Entwicklungen in der derzeitigen WordPress Entwicklung. Sie ermöglicht eine einfach zu erweiternde Schnittstelle für die Kommunikation mit anderen Programmen. Bisher ist im WordPress Core nur die sogenannte „Infrastruktur“ vorhanden, auf welche unter anderem die oEmbeds aufsetzen (welche ich an anderer Stelle ausführlich behandelt habe).

Mit Hilfe der Infrastruktur ist es für Entwickler sehr leicht möglich, eigene sogenannte Endpoints zu registrieren. Über diese können dann andere Programme mit dem WordPress system interagieren und nach festgelegten Parametern Informationen ein- oder auslesen. Solche Endpoints sind unter anderem für Plugins interessant, welche Ajax-Anfragen an das System stellen möchten.

Derzeit wird an WordPress spezifischen Endpunkten gearbeitet, welche (irgendwann einmal) ebenfalls über die REST API im Core verfügbar sein sollen. Derzeit kann man sich diese Endpunkte als eigenes Plugin separat installieren.

Wenn man allerdings eine Webseite betreibt, welche die REST API nicht weiter nutzt und diesen Datenkanal lieber schließen möchte, so hilft dabei ein einfaches kleines Snippet, welches man sich in die functions.php des Child Themes packen kann.

Normalerweise erreicht man die REST API über die URL http://meine-seite.de/wp-json/. Dahinter verbirgt sich sozusagen der Ausgangspunkt in die API. Da die API allerdings auch im WordPress Backend mehr und mehr benötigt wird, sollte man die REST API so abstellen, dass eingeloggte Benutzer sie weiterhin verwenden können. Ansonsten würden Funktionen des Admins nicht mehr laufen:

Embed from gist.github.com

Click the button below to load the content from gist.github.com.

Diesen Ausgangspunkt schreibt die WordPress REST API allerdings auch in den HTML-Quellcode, damit andere Programme diesen finden können. Mit Hilfe des folgenden Befehls kann man dies unterdrücken:

remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );

Da diese Information auch über den Header mit gesandt wird, empfiehlt es sich auch, diese Information nicht zu schicken:

remove_action( 'template_redirect', 'rest_output_link_header', 11 );

Der Vollständigkeit halber kann man diese Information dann auch aus der XMLRPC API (Ja, WordPress verfügt auch über eine XMLRPC-Schnittstelle!) entfernen:
remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' );

Mit diesen vier Zeilen kannst Du also die WordPress REST API schnell und einfach deaktivieren, falls Du diese auf Deiner Seite nicht möchtest.

Über den Autoren

Seine erste Webseite hat David Remer 1998 in HTML verfasst. Wenig später war er fasziniert von DHTML und JavaScript. Nach jahrelanger Freelancerei arbeitete er zunächst für Inpsyde und ist heute Entwickler bei Automattic. Außerdem hat er das Buch "WordPress für Entwickler" verfasst.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.