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

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

Note : bien que cette configuration soit le plus souvent utilisée dans Multisite, le même code fonctionne très bien pour une installation standard de WordPress.

Activation automatique de l’extension

Pour activer automatiquement Akismet, vous pouvez utiliser les extensions obligatoires de WordPress (également appelées mu‑plugins).

Voici un exemple d’extension obligatoire qui peut être placée 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/action wpms_akismet_loader() chargera et activera l’extension Akismet fournie avec WP dans wp‑content/plugins/akismet/, sans que les administrateurs de chaque site aient à le faire manuellement.

La fonction/filtre wpms_akismet_disable_plugin_actions() désactivera les actions normalement disponibles sous le nom d’une extension pour éviter que vos utilisateurs n’activent/désactivent/modifient/suppriment l’extension Akismet intégrée que vous avez activée automatiquement à l’étape précédente, ne laissant que le lien Réglages pour configurer Akismet.

Configuration automatique de la clé API

Avec seulement l’extension obligatoire ci‑dessus installée, chaque site de l’installation multisite devrait toujours configurer Akismet avec sa propre clé API. Cela peut être souhaitable, mais vous pouvez également vouloir activer la même clé API pour tous les sites desservis par cette instance.

Pour ce faire, vous pouvez utiliser une constante spéciale dans le fichier wp‑config.php appelée WPCOM_API_KEY. La constante commence par WPCOM_ car elle a été utilisée pour configurer de telles fonctionnalités sur WordPress.com, la plus grande instance WP Multisite au monde.

Vous pouvez ajouter ce qui suit n’importe où dans le fichier wp‑config.php qui se trouve à la racine de votre installation WP, où 12345qwerty est la clé API Akismet que vous souhaitez utiliser partout :

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

Notez qu’une fois que la constante est configurée, le champ de texte dans l’écran de réglages d’Akismet où l’on entrerait normalement la clé API ne sera plus affiché.