Bonnes pratiques WordPress

N’oubliez surtout pas le thème enfant

Les thèmes WordPress sont par nature déjà personalisables, leur installation simple, les possibilités offertes sont nombreuses mais il y a toujours de petites choses que nous voulons changer. Une couleur ici, une taille de police là-bas, peut-être utiliser un autre appel à l’action, bref nous voulons modifier le CSS de notre thème WordPress et bien plus encore…

Le seul hic, c’est que la modification, même infime, d’un thème vous empêche de faire sa mise à jour vers une nouvelle version à l’avenir, parce que si vous mettez à jour, alors vous perdez toutes vos modifications :/

Les thèmes enfants résolvent ce problème en vous permettant d’utiliser toutes les fonctionnalités de votre thème tout en vous laissant mettre à jour ce dernier, sans peur de perdre vos modifications.

Un thème enfant, c’est quoi  ?

Un thème enfant est un thème basé sur votre thème parent. Il en reprend toutes les fonctionnalités sans jamais le modifier. Ainsi vous pouvez apporter des modifications à votre enfant et en cas de mise à jour du parent, vous ne les perdez pas!

Tout fichier placé dans le thème enfant et portant le même nom que dans le thème parent, surchargera, c’est à dire prendra le dessus et écrasera le fichier d’origine (sauf le functions.php).

A noter : de nombreux thèmes premium de nouvelle génération, embarquent dans leur zip un thème enfant prêt à l’emploi. Dans ce cas, il vous suffit juste de mettre en place ce dernier. Attention, il faut bien évidemment installer le thème parent (sans l’activer), puis installer le thème enfant et enfin activer ce dernier.

Comment mettre en place un thème enfant ?

Pour faire un thème enfant, nous avons besoin du thème d’origine que l’on qualifie de thème parent et de 2 fichiers que nous allons créer. Il faudra également créer un répertoire pour y placer les fichiers du thème enfant.

La première des choses à faire est donc de créer un dossier pour votre thème enfant dans le FTP. Il vous suffit d’aller créer le dossier du thème enfant dans /wp-content /themes /nomdevotrethemeenfant/.

Nous allons maintenant créer les deux fichiers dont nous avons besoin et que nous placerons dans le dossier de notre thème enfant :

  1. un fichier functions.php
  2. un fichier style.css

Pour l’exemple, je vais me baser sur un thème parent qui porte le nom de Twenty Nineteen, ayant pour nom de dossier « twentynineteen » dans le FTP.

Dans le fichier functions.php, nous allons intégrer le code qui va permettre de combiner ou d’écraser le fichier style.css du parent autrement qu’avec le fameux @import css (on déconseille l’@import car cela ajoute une requête inutile cf: https://codex.wordpress.org/)

Voici donc le code à mettre dans le fichier functions.php du thème enfant :

<?php
/**
** activation theme
**/
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
 wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );

}

Une fois ceci fait,  nous avons déjà la partie qui va nous permet d’appeler notre fichier style.cssIl ne nous reste plus qu’a créer le fichier style.css du thème enfant. Voyons ce que doit obligatoirement contenir ce fichier :

/*
Theme Name: Theme enfant
Description: Theme enfant ECV
Author: Arnaud - ECV
Author URI: https://www.reaccess.fr
Template: twentynineteen 
Version: 1.0
*/

Description ligne par ligne du fichier style.css :

  • Theme Name : Le nom que je veux donner a mon thème enfant
  • Description : La description de mon thème enfant celle qui apparaîtra dans mon gestionnaire de thème WordPress
  • Author : L’auteur du thème enfant, en l’occurrence c’est vous
  • Author URI : L’url du site de l’auteur parce qu’un peu de pub ne fait pas de mal
  • Template : Le nom du thème parent en l’occurrence le nom du répertoire tel qu’il est écrit sur le FTP
  • Version : La version de votre thème enfant à titre indicatif

Petits détails à ne pas oublier sinon votre thème enfant ne fonctionnera pas :

  • Ne jamais mettre d’espace avant les deux points. Theme Name: fonctionnera mais Theme Name : ne fonctionnera pas
  • Pour l’attribut Template : Si votre thème dans l’admin se nomme par exemple “Twenty Nineteen” mais que le nom affiché dans le répertoire FTP est “twentynineteen” alors il faudra obligatoirement respecter la casse et écrire « twentynineteen » et non  » Twenty Nineteen »
  • Pour le reste, vous pouvez ne rien mettre, cela fonctionnera quand même !

Afin d’égayer un peu votre gestionnaire de thèmes WordPress, vous pourrez aussi mettre un fichier screenshot.jpg (600×450 px conseillé) qui affichera la miniature de votre thème enfant dans le gestionnaire de thèmes.

Voilà, votre thème enfant est prêt !

Vous pouvez maintenant ajouter toutes vos modifications CSS dans le fichier style.css du thème enfant et vous ne les perdrez plus en cas de mise à jour du thème parent (n’oubliez pas de les commenter, ça aide parfois;).

Désormais, si vous voulez modifier votre single.php ou votre header.php, rien de plus simple! Copiez-les du parent vers le thème enfant et modifiez-les ! 

Vous pouvez également ajouter des fonctions dans le functions.php de votre enfant, tout en sachant que le functions.php du parent sera toujours chargé en dernier et qu’il prendra le dessus en cas de fonctions identiques.

Sauvegarder WordPress

La sauvegarde d’un site WordPress est primordiale, en effet, une erreur, une faille de sécurité ou pire encore, un piratage et tout est perdu…

Il existe plusieurs façons de sauvegarder WordPress, manuellement via FTP + MySQL, ou à l’aide de nombreux plugins de sauvegarde.

Pour le moment, vous pouvez ne retenir que l’extension courante et efficace : « Updraft Plus« .

La Sécurité sous WordPress

La sécurité de WordPress est un sujet crucial et essentiel pour tout administrateur système soucieux de préserver son site.

Quand on réalise le temps de travail, d’écrits, et de réflexions que représente la création d’un site, il est dangereux d’être approximatif en ce qui concerne sa protection.

Mesures de sécurité essentielles à WordPress

1- Le compte Admin : En premier lieu, quelque soit la méthode d’installation choisie, créez toujours un nouveau compte ADMIN avec un login + mot de passe ultra sécurisé. Si possible évitez de choisir un login avec votre prénom ou la racine de votre domaine.

2- Mot de passe : Il faut toujours utiliser des mots de passe complexes associant lettres, symboles et chiffres. Il vous faut employer de préférence un générateur de chaîne aléatoire de plus de 8 caractères. Vous aurez ainsi un login bien plus sûr.

3- Pensez à restreindre le nombre d’essais d’identification : Plusieurs plugins permettent de vous protéger des attaques par “force brute”, c’est-à-dire les tentatives pour deviner votre mot de passe par une recherche de toutes les combinaisons possibles.

4- Pensez à masquer la version de votre WordPress, car elle donne des informations aux hackers pour trouver d’éventuelles failles de sécurité. Dans le fichier function.php de votre thème, ajoutez ce bout de code :

remove_action("wp_head", "wp_generator");

Le numéro de version WP se trouve également dans le fichier readme.html situé à la racine de votre WordPress (fichier à supprimer également)

5- Faites des sauvegardes : Les backups du système sont à effectuer au moins toutes les semaines pour prévenir un piratage ou un crash disque.  Il vaut mieux prévenir que guérir !

6- Faites des mises à jour régulières du site car cela permet d’avoir les tous derniers correctifs des failles de sécurité. Encore une fois avant toute mise à jour, pensez à sauvegarder votre WP.

7- Protégez vos fichiers et bloquez la navigation dans vos dossiers WordPress. Par défaut, n’importe qui peut accéder au contenu de vos dossiers WordPress (wp-content) via un simple navigateur.

Pour protéger le fichier wp-config via votre htaccess, ajoutez :

<Files wp-config.php>
 order allow,deny
 deny from all
</Files>

Pour cacher les répertoires sensibles toujours via le htaccess :

Options All -Indexes

Enfin pour protéger le fichier htaccess lui-même :

<Files .htaccess>
 order allow,deny 
 deny from all 
</Files>

En bonus, retrouvez ci après 3 solutions pour renforcer la sécurité de WordPress:

  • Passer votre WordPress en HTTPS, c’est la meilleure façon de protéger les données de vos utilisateurs et de vous défendre contre l’usurpation d’identité. Les sites sécurisés via SSL bénéficient en outre, d’un avantage pour leur référencement dans les pages de résultats de recherche.
  • Enfin, l’antivirus que je préfère : WordFence. C’est un plugin freemium, c’est à dire que les options de base sont gratuites et certaines réservées aux utilisateurs premium. Très efficace et performant.
  • Mettez en place les règles de sécurité classiques, communes à tous les sites web : plus d’infos sur le site korben

Le SEO et WordPress

En matière de SEO, WordPress est l’un des meilleurs, si ce n’est le meilleur des systèmes de gestion de contenu (CMS).

L’optimisation de votre site en suivant les bonnes pratiques, vous aidera à améliorer votre positionnement, à gagner des abonnés et, de façon plus générale, à avoir un meilleur site !

Les Check-lists WordPress

Une fois l’installation de WordPress effectuée, le travail n’est pas fini ! Loin s’en faut, il vous reste encore à l’optimiser pour en tirer le meilleur…

Pensez a la vitesse, utilisez un cache

Utiliser un cache consiste à créer des pages HTML sur votre serveur à partir des pages générées par WordPress. Ensuite  le serveur n’a plus qu’à afficher ces pages, sans effectuer les multiples requêtes normalement nécessaires à leur affichage. Il existe de nombreux plugins de cache, W3 Total Cache et WP Super Cache. La vitesse, c’est bon pour vos visiteurs et pour votre référencement WordPress.

Installez et activez votre plugin de cache, une fois votre site/blog terminé.

Configurer le fichier .htaccess pour WordPress

Les fichiers .htaccess sont des fichiers de configuration des serveurs web Apache. Ils peuvent être placés dans n’importe quel répertoire du site web (la configuration s’applique au répertoire et à tous ceux qu’il contient n’ayant pas de tel fichier à l’intérieur).

Il est important de configurer ce fichier, notamment pour interdire les modifications sur certains fichiers, empêcher la lecture des répertoires, compresser, régler le cache, etc.

Augmenter la taille memoire limite sous WordPress

Par défaut, WordPress essaie d’augmenter la mémoire PHP à 32 Mo pour fonctionner. Pensez à modifier cette valeur à 64 ou 96 Mo pour bénéficier d’une mémoire supérieure et de performances améliorées. Modifiez votre fichier wp-config.php et ajoutez/remplacez la ligne suivante :

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

Désactiver et/ou limiter les révisions d’article

Vous l’avez sans doute déjà remarqué, WordPress garde trace de toutes vos modifications d’article. Pratique certes, mais gourmand en espace sur la base de données. Si vous n’utilisez que rarement les révisions, pensez à les désactiver via votre wp-config.php :

define('WP_POST_REVISIONS', false);

Vous pouvez aussi en limiter le nombre (réglé sur 3 dans cet exemple) :

define('WP_POST_REVISIONS', 3);

Supprimer les thèmes et plugins non utilises

L’eau ça mouille et le feu ça brûle 😉 Il est évident que tous les plugins WordPress non utilisés devraient être désactivés et retirés, toujours ça de pris au niveau des ressources et de la sécurité de votre WordPress. Pour ce qui est de vos thèmes WordPress non activés, cela prend de la place et cela vous informe à chaque mis à jour de ces derniers, autant vous en débarrasser!

Héberger les images et/ou déférer leur chargement

Les images peuvent parfois être gourmandes, pour soulager les ressources de votre serveur vous pouvez les héberger ailleurs (Amazon S3, dans sous-répertoire, en utilisant un CDN).

L’autre solution consiste à déférer leur chargement. Le principe est simple, je charge et j’affiche l’image uniquement quand le visiteur a besoin de la voir !  Pour le mettre en place, je vous conseille le plugin gratuit Lazy Load.

Contrôler le rendu du site sur différents navigateurs

On l’oublie trop souvent, il y a encore des gens qui utilisent Internet Explorer 😉 Aussi il est nécessaire  de contrôler l’affichage de votre site sur les principaux navigateurs.

La structure hiérarchique des fichiers template

Les fichiers modèles (« templates ») sont des fichiers modulaires, réutilisables, utilisés pour générer les pages Web sur votre site WordPress. Certains fichiers modèles (tels que le modèle d’en-tête et de pied de page) sont utilisés sur toutes les pages de votre site, tandis que d’autres sont utilisés uniquement dans des conditions spécifiques.

WordPress utilise la chaîne de requête pour décider quel modèle ou ensemble de modèles doit être utilisé pour afficher la page. La chaîne de requête est l’information contenue dans le lien vers chaque partie de votre site Web. Il vient après le point d’interrogation initial et peut contenir un certain nombre de paramètres séparés par des esperluettes.

En d’autres termes, WordPress parcourt la hiérarchie des modèles jusqu’à ce qu’il trouve un fichier de modèle correspondant. Pour déterminer quel fichier template utiliser, WordPress:

Fait correspondre chaque chaîne de requête à un type de requête pour décider quelle page est demandée (par exemple, une page de recherche, une page de catégorie, etc.);

Sélectionne le modèle dans l’ordre déterminé par la hiérarchie du modèle;

Recherche les fichiers modèles avec des noms spécifiques dans le répertoire du thème en cours et utilise le premier fichier modèle correspondant spécifié par la hiérarchie.

À l’exception du fichier de modèle index.php base, vous pouvez choisir si vous souhaitez implémenter un fichier de modèle particulier ou non.

Si WordPress ne peut pas trouver un fichier modèle avec un nom correspondant, il passera au fichier suivant dans la hiérarchie. Si WordPress ne trouve aucun fichier de modèle correspondant, le fichier index.php du thème sera utilisé.

https://developer.wordpress.org/files/2014/10/wp-hierarchy.png