Automatisches Aktivieren und Konfigurieren von Akismet für WordPress (Standard und Netzwerk)

Wenn du ein WordPress-Netzwerk (auch bekannt als Multisite) betreibst, möchtest du möglicherweise das Akismet-Plugin für jede Website dieser Multisite-Instanz automatisch aktivieren und konfigurieren.

Hinweis: Dieses Vorgehen wird zwar meist in Multisite-Umgebungen verwendet, aber derselbe Code funktioniert auch in einer normalen WordPress-Installation problemlos.

Automatisches Aktivieren des Plugins

Um Akismet automatisch zu aktivieren, kannst du Must-Use-Plugins von WordPress (mu-plugins) nutzen.

Hier ist ein Beispiel für ein MU-Plugin, das in wp-content/mu-plugins/akismet-loader.php abgelegt werden kann:

<?php
function wpms_akismet_loader() {
        require_once( WP_PLUGIN_DIR . '/akismet/akismet.php' );
}
add_action( 'plugins_loaded', 'wpms_akismet_loader' );
function wpms_akismet_disable_plugin_actions( $actions, $plugin_file, $plugin_data, $context ) {
        if ( 'akismet/akismet.php' === $plugin_file ) {
                return array();
        }
        return $actions;
}
add_filter( 'plugin_action_links', 'wpms_akismet_disable_plugin_actions', 10, 4 );

Die Funktion/Aktion wpms_akismet_loader() lädt und aktiviert das in wp-content/plugins/akismet/ mit WordPress mitgelieferte Akismet-Plugin, ohne dass die Administratoren der einzelnen Websites dies manuell tun müssen.

Die Funktion/der Filter wpms_akismet_disable_plugin_actions() deaktiviert die Links, die normalerweise unter dem Namen eines Plugins angezeigt werden. So können deine Benutzer das mitgelieferte Akismet-Plugin, das du im vorherigen Schritt automatisch aktiviert hast, nicht aktivieren, deaktivieren, bearbeiten oder löschen. Es bleibt nur der Link Settings übrig, um Akismet zu konfigurieren.

Automatisches Konfigurieren des API-Schlüssels

Wenn nur das oben genannte MU-Plugin installiert ist, müsste jede Website der Multisite-Installation Akismet weiterhin mit einem eigenen API-Schlüssel konfigurieren. Das kann gewünscht sein, aber vielleicht möchtest du denselben API-Schlüssel auch für alle Websites in dieser Instanz verwenden.

Dazu kannst du eine spezielle Konstante in der Datei wp-config.php namens WPCOM_API_KEY nutzen. Die Konstante beginnt mit WPCOM_, weil sie ursprünglich zum Konfigurieren solcher Funktionen auf WordPress.com verwendet wurde – der größten WordPress-Multisite-Instanz der Welt.

Du kannst Folgendes an beliebiger Stelle in die Datei wp-config.php einfügen, die sich im Stammverzeichnis deiner WordPress-Installation befindet. Dabei ist 12345qwerty der Akismet-API-Schlüssel, der überall verwendet werden soll:

// AKISMET API KEY
define('WPCOM_API_KEY','12345qwerty');

Beachte, dass nach dem Setzen der Konstante das Textfeld in den Akismet-Einstellungen, in das normalerweise der API-Schlüssel eingegeben wird, nicht mehr angezeigt wird.