seeseekey.net - Invictus Deus Ex Machina

Vor ein paar Tagen schrieb ich eine iCal-Erweiterung für bestehendes WordPress-Plugin, welches unter anderem die Feed-API von WordPress nutzte. Bei der Entwicklung stellte sich allerdings heraus, das eine Änderung im Code, nicht gleich eine Änderung in den entsprechenden Feeds nach sich zog. Ursache für dieses Problem war der eingebaute Feed-Cache von WordPress. Mit einem kleinen Funktion im Plugin, konnte dieser allerdings für Debug-Zwecke abgeschaltet werden:

function getFeedCacheTime($seconds) 
{
    return 1;
}

add_filter('wp_feed_cache_transient_lifetime', 'getFeedCacheTime');

Die Funktion getFeedCacheTime gibt dabei die maximale Cache-Zeit an — in diesem Fall eine Sekunde, so das der Cache faktisch deaktiviert ist und die Entwicklung ohne störende Wartezeiten weiter betrieben werden konnte.

Wenn man eine WordPress-Installation mit dem Google Authenticator Plugin absichert, muss ein zusätzlicher Code beim Login eingegeben werden. Dies erhöht die Sicherheit der Installation, führt allerdings zu einem Problem beim Login mit der WordPress App für iOS oder Android. Der Login in der WordPress App funktioniert nicht, da ein zusätzlichen Token erwartet wird.

Die entsprechenden Einstellungen im WordPress Backend

Lösen kann man das Problem indem man ein App password in den Nutzereinstellungen von WordPress vergibt. Dieses Passwort wird dann in der App anstelle des normalen Passwortes genutzt. Damit funktioniert der Login über die App wieder.

Der „Markt“ der Starter-Themes für WordPress ist relativ groß. Gemeint sind damit Themes, welche als Ausgangspunkt für neue Themes genutzt werden können. Diese Themes verfügen dann über die notwendigen Basisfunktionen um das Theme möglichst schnell an die eigenen Wünsche anzupassen.

underscores.me

Mit underscores.me gibt es einen Dienst welcher ein solches Starter-Theme erzeugt. Underscores wird dabei von Automatic, der Firma hinter WordPress unterstützt. Auf der Webseite erhält man nach der Eingabe des gewünschten Namens, eine ZIP-Datei in welcher sich das Theme befindet. Lizenziert ist das Underscores-Theme unter der GPL in der Version 2.

WordPress verfügt über ein mächtiges Plugin-System. Die Plugin lassen sich ohne Probleme über die eingebaute Pluginverwaltung installieren. Problematisch wird es wenn Plugins aus dem WordPress Plugin Directory entfernt werden oder veraltet sind. Die Gründe für einen solchen Ausschluss aus dem Verzeichnis sind dabei vielfältig, so können zur GPL inkompatible Lizenzen oder Sicherheitslücken zu einem Rauswurf führen.

Eine beispielhafte Auswertung

Mit No Longer in Directory gibt es nun ein Plugin, welches die installierten Plugins daraufhin überprüft. Wenn man die Pluginseite aufruft, werden die Plugins aufgelistet welche nicht mehr im WordPress Plugin Directory vorhanden sind. Daneben gibt es eine Liste von Plugins welche länger als zwei Jahre nicht mehr aktualisiert wurden.

Bei einer WordPress Multisite-Installation gibt es unter Updates den Punkt Netzwerk aktualisieren. Wenn man seine Multisite-Installation mit selbstsignierten Zertifikaten betreibt, kann es dabei zu folgender Fehlermeldung kommen:

https://wordpress.example.com/mysite1

Warnung! Problem beim aktualisieren von https://wordpress.example.com/mysite1. Vermutlich gab es einen Zeitablauf. Die Fehlermeldung lautet: SSL certificate problem: self signed certificate

Um das Problem zu lösen packt man folgendes Plugin, in den WordPress-Plugin-Ordner:

<?php
/*
* Plugin Name: Deactivate SSL Verify
* Description: Deactivate SSL verification
* Author: seeseekey
* Author URI: http://seeseekey.net
* Plugin URI: http://seeseekey.net
*/
add_filter('https_ssl_verify', '__return_false');
add_filter('https_local_ssl_verify', '__return_false');

Nachdem das Plugin aktiviert wurde, kann die Aktualisierung des Netzwerkes durchgeführt werden. Anschließend kann das Plugin wieder deaktiviert werden.

Eine Multisite-Wordpress-Installation ist ein WordPress welches verschiedene Domains mit unterschiedlichen Inhalten aka Webseiten bespielt. Unter Umständen kann es vorkommen, das man diese WordPress-Installation von einer Domain auf eine andere Domain umziehen möchte. Leider lässt sich die Domain, auf welcher das Multisite-Wordpress installiert wurde, nicht einfach ändern.

Die Netzwerkeinstellungen einer WordPress Multisite Installation

Stattdessen muss man die Änderungen an der Datenbank vornehmen. Im ersten Schritt sollte ein Backup der Datenbank erzeugt werden. In der resultierenden SQL-Datei werden dann alle Erwähnungen der alten Domain durch die neue Domain ersetzt. Diese geänderte SQL-Datei kann dann in eine neue oder in die bestehende (nachdem die alten Tabellen vorher gelöscht wurden) Datenbank importiert werden. Als letzter Schritt muss die wp-config.php angepasst werden. Dort findet sich der Punkt:

define('DOMAIN_CURRENT_SITE', 'example.com');

An diesem Punkt muss die neue Domain eingetragen werden. Eventuell muss man an dieser Stelle auch die Zugangsdaten für die Datenbank ändern, wenn man die SQL-Datei in eine neue Datenbank importiert hat.

Manchmal ist es nötig unter WordPress bestimmte Dinge in der gesamten Datenbasis zu ändern. Hierbei kann es sich um eine geänderte URL, einen geänderten Projektnamen oder ähnliches handeln. Natürlich macht es nun kein Spaß alle Seiten und Beiträge zu durchsuchen. Bei größeren Blogs und Webseiten können durchaus einige tausend Beiträge vorhanden sein.

Ein Teil der Nutzeroberfläche von Search and Replace

Hier steht das Plugin Search and Replace hilfreich zur Seite. Mit Hilfe dieses Plugins ist es möglich bestimmte Ausdrücke systemweit zu ersetzen. Natürlich sollte man bei so einem mächtigen Tool vorsichtig sein und es nur nach einem Backup der WordPress-Datenbank nutzen. Bezogen werden kann das Plugin direkt über die Pluginverwaltung sowie über das Plugin Repository. Lizenziert ist Search and Replace unter der GPL und damit freie Software.

Der Veröffentlichen-Button im WordPress-Editor ist groß und auffällig gestaltet. Manchmal führt dies dazu, das man den Button drückt obwohl der Artikel noch nicht veröffentlicht werden soll. Falls dies öfter geschieht, kann das Problem mit dem Plugin Publish Confirm aus der Welt geschafft werden.

Publish Confirm in Aktion

Publish Confirm schaltet vor die Veröffentlichung noch einen Dialog, der beim Nutzer fragt ob diese Aktion wirklich beabsichtigt war. Das Plugin kann direkt über die WordPress Plugin Verwaltung installiert werden oder über das WordPress Plugin Repository bezogen werden. Der unter der GPL lizenzierte Quelltext ist auf GitHub zu finden.

Wer den Titel dieses Beitrages ließt, könnte sich sicherlich einige Fragen stellen — so z.B. die Frage wozu man einen Flugzeug-Modus in WordPress benötigt und was genau dieser Flugzeug-Modus bietet. Besagter Modus wird mittels des WordPress-Plugins Airplane Mode realisiert. Das Plugin deaktiviert, sämtliche Abhängigkeiten an externe Server, wie z.B. Gravatar und andere HTTP-Requests. Damit eignet es sich für Entwickler, welche ein WordPress lokal auf dem Rechner nutzen möchten und dabei keine Internetverbindung zur Verfügung haben.

Das Projekt auf GitHub

Im Moment befindet sich das Plugin noch nicht im WordPress Plugin Repository, so das es manuell installiert werden muss. Die entsprechenden Plugin-Dateien sind auf GitHub zu finden. Lizenziert ist das Plugin unter der MIT-Lizenz und damit freie Software.

Wenn man seine eigene WordPress Installation betreibt, kann es unter Umständen passieren, das man Dienste von Google benutzt. Grund hierfür kann unter anderem die Nutzung von Webfonts sein. Viele Themes verweisen bei Webfonts gerne auf den Google Dienst Google Fonts, anstatt die Fontdatei in das Theme zu integrieren.

Das Plugin im WordPress Plugin Repository

Mit dem WordPress Plugin Disable Google Fonts, kann man dieses Problem beseitigen. Das Plugin deaktiviert das Laden von Fonts über Google Fonts. Der Quelltext des Plugins ist auf GitHub zu finden. Das Plugin selbst kann direkt über WordPress oder über das WordPress Plugin Repository bezogen werden.