Guide de survie WordPress

Classé dans : Logiciels | 0

Ce post sous forme d’aide mémoire/guide, regroupe toutes mes découvertes sur WordPress.

Tout n’est pas la, simplement tout ce que j’ai eu un jour à utiliser/comprendre… lors de mes aventures avec WordPress…

Le post sera mis à jour régulièrement, dernière mise à jour 30/01/23.

Tous les guides de blog sont ici : Les guides


Modication ‘wp-config.php’

  • Désactiver les révisions de posts : define('WP_POST_REVISIONS',false);
  • Désactiver les mises à jour auto : define('WP_AUTO_UPDATE_CORE',false );
  • Configuration le délai d’auto-sauvegarde des brouillons : define('AUTOSAVE_INTERVAL',300);

Utiliser WP (interface cli pour WordPress)

  • Installer wordpress : wp core download --locale=fr_FR --allow-root
  • installer un thème : wp theme install NOM_THEME
  • Installer un plugin : wp plugin install NOM_PLUGIN
  • Installer un pack de langue : wp core language install fr_FR
  • Installer un thème avec un pack FR : wp language theme install NOM_THEME fr_FR

Modifier les dossiers par défaut

Pour une sécurité plus forte il est possible de modifier l’arborescence par défaut d’un site WordPress.

Par exemple vous pouvez placer tous les fichiers WordPress dans un dossier _wpcore. Ainsi les bot et autres tentatives d’attaque en utilisant les urls par défaut d’un site WordPress ne passeront pas.

Pour réaliser cette modification c’est très simple, il suffit de créer le dossier souhaité, déplacer tous les fichiers WordPress dans ce dossier, sauf le fichier index.php.

Il faut ensuite éditer le fichier index.php et modifier la ligne : require DIR . '/_wpcore/wp-blog-header.php'; pour ajouter le dossier dans le chemin d’import.

Pour finir il faut ajouter 3 lignes dans wp-config.php

# URL du site 
define('my_site_url','https://URL_DU_SITE/');
# url des fichiers wordpress, avec le nouveau dossier
define('WP_SITEURL', my_site_url.'_wpcore/');
define('WP_HOME', my_site_url);

/** Réglage des variables de WordPress et de ses fichiers inclus. */
require_once( ABSPATH . 'wp-settings.php' );

Attention les 3 lignes doivent être ajoutées avant la ligne : require_once( ABSPATH....)


Compléter ‘functions.php’

Quelques exemples de fonctions utiles à ajouter dans le fichier function.php de votre thème. Il est conseillé de travailler sur un thème enfant pour ne pas risquer lors d’une mise à jour du thème principal un effacement de ce fichier.

Charger un CSS

function loadMyCSS() {
  wp_register_style( 'custom', get_template_directory_uri().'/monBlog.css' );
  wp_enqueue_style( 'custom' );
}
add_action( 'wp_enqueue_scripts', 'loadMyCSS' );

Le fameux ‘.htaccess’

Ce fichier est très important pour le bon fonctionnement de WordPress, notamment pour les permaliens. Il doit être créer à la racine de votre dossier WordPress.

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
  RewriteBase /
  RewriteRule ^index\.php$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]
</IfModule>

Rediriger le www.mondomaine.fr vers mondomaine.fr via le .htaccess.
Ajouter ces deux lignes avant RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

Protéger le dossier wp-admin avec un .htaccess

Pour plus de sécurité je conseille toujours de placer une double authentification sur la partie admin de WordPress. Pour ce faire le plus simple c’est de créer un fichier .htaccess dans le dossier wp-admin. Avec le contenu suivant

AuthType Basic
AuthName "Protected Area..."
AuthUserFile /ABSOLUTE/PATH/TO/.htpasswd
<limit GET PUT POST>
   Require valid-user
</limit>

Il faut également créer un fichier .htpasswd avec le login et le mot de passe haché (crypté). Il faut bien indiquer le chemin absolu vers ce fichier sur le serveur.


Traiter les post planifiés avec ‘wp-cron.php’

Il est possible de créer une tâche cron (planificateur Linux) pour exéctuer wp-cron.php régulièrement et ainsi s’assurer que les posts/pages planifiés seront bien traités. Pour cela l’utilitaire wget doit être installé. Il faut ensuite modifier le fichier crontab et ajouter cette ligne

*/30 6-23 * * * /usr/bin/wget -q -O /dev/null https://XXX/wp-cron.php

Cette planification exécute wp-cron.php toutes les 30mn entre 6h et 23h tous les jours.

A noter que vous pouvez placer cette action sur une machine Linux autre que le serveur qui héberge votre WordPress. Wget ‘appelle’ l’url et n’a pas forcement besoin d’être sur le serveur lui même. Cela sera utile si votre WordPress est sur un serveur mutualisé sur lequel vous ne pouvez pas modifier la crontab.