Améliorer le fichier de configurations de son wp

Type de snippet : Configurations

En plus des configurations habituelles concernant la base de données, les clés de sécurité, certaines constantes  peuvent être ajoutées pour éviter la surcharge de la bdd et augmenter la sécurité du site. Elles doivent être ajoutées avant cette ligne :

/* That's all, stop editing! Happy blogging. */

Ensuite piocher dans les constantes ci dessous celles qui sont adaptées au site qu’on gère.

Allonger l’intervalle de sauvegarde automatique

La valeur par défaut de cet intervalle est de 60 secondes

define('AUTOSAVE_INTERVAL', 200);

Limiter le nombre de révisions d’articles

On peut complètement désactiver les versions des articles

define('WP_POST_REVISIONS', false);

Mais comme ça peut quand même être utile, on peut choisir combien en garder

define('WP_POST_REVISIONS', 3);

Si cette constante n’avait pas été définie dès le début de l’existence du site, cette nouvelle configuration ne s’appliquant qu’aux nouveaux contenus qui seront créés, il faut faire le ménage dans la bdd.

Pour supprimer toutes les révisions, au niveau de phpMyAdmin, lancer la requête suivante :

DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

Pour supprimer des révisions antérieures à une certaine date :

DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'
AND a.post_date < '2018-11-01';

Vider plus rapidement la corbeille

La valeur par défaut est de 30 jours

define('EMPTY_TRASH_DAYS', 10 );

Activer le débogage en phase de développement

Pour obtenir l’affichage de toutes les erreurs, alertes et avertissements de PHP, utiliser la constante WP_DEBUG. Modifie le comportement de PHP par défaut qui affiche seulement les erreurs fatales et / ou montre un écran blanc de la mort lorsque des erreurs sont présentes. 

define('WP_DEBUG', true);

Enregistrer les erreurs dans un fichier debug.log à l’intérieur du répertoire /wp-content/. Utile si on veut examiner les avertissements plus tard.

define('WP_DEBUG_LOG', true);

Si on a en place WP_DEBUG_LOG, on peut empêcher l’affichage des messages de débogage dans l’HTML des pages.

define('WP_DEBUG_DISPLAY', false);

Désactiver l’éditeur d’extension et de thème

Même si cette façon d’éditer peut sembler pratique, il vaut mieux modifier ses fichiers uniquement en passant par FTP

define('DISALLOW_FILE_EDIT',true);

Ne pas autoriser les uploads non filtrés

Si piratage, un fichier svg, donc xml pourrait contenir du code malicieux

define('ALLOW_UNFILTERED_UPLOADS',false);

Interdire l’html non filtré

En tant qu’admin on peut ajouter dans un contenu article ou page des balises script, ou iframe. En cas de hack, ces ajouts peuvent être dangereux. Si on a quand même besoin d’ajouter des iframe ou script, on peut le faire en les transformant en shortcode. Et on utilise le shortcode dans le contenu de l’article.

define('DISALLOW_UNFILTERED_HTML',true);

Empêcher que l’url du site puisse être modifiée

define('RELOCATE',false);

Interdire les installations d’extension et thèmes

Quand le site est livré à un client et est 100% fonctionnel comme attendu, on peut interdire l’installation d’extensions et de thèmes (fonctionnalités inutiles dans ce cas)

define('DISALLOW_FILE_MODS',true);

Activer la réparation automatique de la bdd

A utiliser quand une bdd est endommagée ou corrompue. Cela permet d’activer la fonctionnalité de réparation de la bdd en lançant le script via l’url : {$your_site}/wp-admin/maint/repair.php

define('WP_ALLOW_REPAIR', true);

Augmenter la mémoire allouée aux scripts PHP

La constante wp_memory_limit détermine la mémoire maximale qu’un script peut utiliser lors de son exécution. Sur WP sa valeur par défaut est de 32 Mo qui peut ne pas suffire et provoquer une erreur : PHP Fatal error: Allowed memory size of XXX bytes exhausted. On peut donc l’augmenter pour 64Mo ou 128Mo suffisant la plupart du temps. Sur un site e-commerce on peut avoir besoin de plus.

define('WP_MEMORY_LIMIT', '128M');

Sur les hébergements mutualisés cette mémoire allouée est limitée et toute valeur demandée qui serait supérieure à celle que propose l’hébergement n’aura donc aucun effet. Vous pouvez consulter le lien suivant pour avoir un comparatif mémoire et temps d’exécution des scripts chez différents hébergeurs.

Forcer le https sur l’ admin

Si le site bénéficie d’un certificat SSL

https://codex.wordpress.org/Administration_Over_SSL

define('FORCE_SSL_ADMIN', true);

Désactiver les MAJ automatiques

Désactiver toutes les mises à jour

define('AUTOMATIC_UPDATER_DISABLED', true);

Désactiver les mises à jour de la version de WP

define('WP_AUTO_UPDATE_CORE', false);