Activation et configuration automatiques d’Akismet pour WordPress (standard et multisite)

Si vous utilisez un réseau WordPress Multisite (également appelé multisite), vous souhaiterez peut-être activer et configurer automatiquement l’extension Akismet pour chaque site géré par cette instance multisite.

Remarque : bien que la configuration suivante soit le plus souvent utilisée dans un environnement multisite, le même code fonctionne parfaitement pour une installation WordPress standard.

Activation automatique de l’extension

Pour activer Akismet automatiquement, vous pouvez utiliser les extensions indispensables de WordPress (mu-plugins).

Voici un exemple de mu-plugin pouvant être placé dans wp-content/mu-plugins/akismet-loader.php :

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

La fonction wpms_akismet_loader() charge et active l’extension Akismet incluse dans WordPress depuis wp-content/plugins/akismet/, sans que chaque administrateur de site ait à le faire manuellement.

Le filtre wpms_akismet_disable_plugin_actions() désactive les actions habituellement affichées sous le nom d’une extension. Il empêche ainsi vos utilisateurs d’activer, de désactiver, de modifier ou de supprimer l’extension Akismet activée automatiquement à l’étape précédente, et laisse uniquement le lien Settings pour configurer Akismet.

Configuration automatique de la clé API

Si seule l’extension mu-plugin ci-dessus est installée, chaque site du réseau multisite devra encore configurer Akismet avec sa propre clé API. Cela peut être souhaitable, mais vous pourriez aussi vouloir utiliser la même clé API pour l’ensemble des sites servis par cette instance.

Pour ce faire, vous pouvez utiliser une constante spéciale dans le fichier wp-config.php, appelée WPCOM_API_KEY. Cette constante commence par WPCOM_ car elle a d’abord servi à configurer ces fonctionnalités sur WordPress.com, la plus grande instance WordPress Multisite au monde.

Vous pouvez ajouter le code suivant à n’importe quel endroit du fichier wp-config.php, situé à la racine de votre installation WordPress. Remplacez 12345qwerty par la clé API Akismet que vous souhaitez utiliser sur tous les sites :

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

Notez qu’une fois la constante configurée, le champ de texte de l’écran des réglages Akismet dans lequel on saisit habituellement la clé API ne sera plus affiché.