La solution CMS OpenSource historique
© Julien Noyer - All rights reserved for educational purposes only
Wordpress est l'un des CMS les plus complet du marché, il est considéré que plus de 90% des sites Web actuels peut être développé avec Wordpress ce qui le place comme l'un des outils essentiel à maîtriser pour toutes personnes désirant travailler dans le domaine du digitale.
Il est important de noter que Wordpress est plus qu'un outil "No Code" dans la mesure ou, pour faire en sorte de développer des compétence poussées en Wordpress, la manipulation des principes de programmation et des différents langages du Web (HTML, CSS, Javascript et PHP) sont obligatoires.
Pour installer et utiliser Wordpress vous devez avoir à disposition les éléments suivants :
Dans un premier temps, il est conseillé d'installer Wordpress en local (via MAMP par exemple) pour ensuite, une fois que les différentes pages, articles, extensions et thème soit créés et configurés correctement, le mette en ligne via le protocole FTP.
Ce document ne traite pas de l'installation de Wordpress, ni même de l'utilisation basique du backoffice, mais des techniques particulières pour faire de Wordpress un outil plus poussé que la simple mise en ligne d'un site utilisant un template.
Les thèmes Wordpress sont des design de site Web qu'il est possible d'intégré dans un site Wordpress. Il est existe une très grande quantité, plus ou moins biens élaborés, qui vont du gratuit au payant. Il est conseillé de ne travailler qu'avec des templates payants ou avec les template directement ptoposé par Wordpress car ils vous assurent plus de stabilité.
Pour installer un thèmes Wordpress, il vous suffit de vous rendre dans la section Apparences / Thèmes
pour sélectionner un thème dans la liste proposé ou télécharger un thème.
Dans la plupart des cas, un thème Wordpress ne suffit pas et vous allez devoir être capable de la modifier tout en vous assurant de pouvoir mettre à jour le thème sans perdre les changements qui vous aurez apporté. C'est pourquoi, une fois que vous avez sélectionné et mis en place votre thème vous devez absoluement créer un thème enfant.
Pour créer un thème enfant, vous devez installer l'extension Child Theme Configurator et suivre les étapes de création d'un thème enfant basé sur le thème que vous aurez choisi. Une fois le thème enfant créé, vous devez vous rendre dans la section Apparences / Thèmes
pour activer le thème enfant que vous aurez créé.
Il est impératif de ne pas supprimer le thème parent ayant permis de créer le thème enfant.
Grâce au thème enfant, vous pourrez modifier le CSS, créer des templates de page ou même modifier la totalité du template mais toutes les modifications que vous approterez devront être faite dans le dossier de votre thème enfant.
Tous les fichiers ayant le même nom dans le thème enfant remplacerons ceux présent dans le thème parent.
Tout comme les thèmes il existe un très grand nombre d'extension - ou plugins - Wordpress. Le but de ce document n'est pas d'en dresser une liste exhaustive, mais de vous présenter les extensions les plus intéressantes.
Afin de ne pas surcharger un site et d'optimiser son chargement dans le navigateur, il est conseiller de ne pas utiliser plus de 7 extensions et de bien faire attention à ne pas en utiliser celles qui ne correspondant pas à votre version de Wordpress ou qui n'ont que très peu d'étoiles ou d'installation actives.
Voici la liste des extensions qu'il vous est conseillé d'installer :
Un template de page en Wordpress est un fichier PHP placé dans le dossier actif du thème Wordpress dans lequel il est possible d'utiliser toutes les techniques de développement Web. Il est possible de créer autant de templates de page que nécessaire, le nombre n'est pas limité, mais il est conseillé de bien réfléchir avant de ce lancer dans la création d'un template pour ne pas réécrire des lignes de code inutile.
Voici un code de départ pour créer un template de page :
Selon le thème de base que vous aurez choisi, il est conseiller de respecter la structure du fichier "page.php" pour s'assurer de bien reprendre tous les éléments nécessaires à l'affichage d'une page. Prenons l'exemple du thème "Twenty Seventeen" et la création d'un template de page nommé "Page contacts" :
Tout comme pour les pages, il est possible de définir des templates pour les articles.
Il est très important voir essentiel de bien structurer un template de page pour mieux se repérer dans les fichiers. Comme il est indiqué dans le code ci-dessous, une fonction "get_template_part()" est utilisé pour charger un fichier, vous devez donc bien prendre en compte cette notion dans la création de vos templates.
Dans un premier temps, vous devez créer un dossier "template-parts" à la racine du dossier de votre thème enfant. Vous devez ensuite créer des dossiers dans le dossier "template-parts" pour organiser vos différentes templates. Voici à quoi correspond la ligne de code suivante :
Le fichier content-page.php
est chargé dans le template de page Page contacts
depuis le dossier page
situé dans le dossier template-parts
.
Si le fichier n'existe pas dans ni le dossier du thème enfant, ni dans le dossier du thème parent, il y aura une erreur de chargement.
Pour faire en sorte de pouvoir développer toutes vos envies de site Web, il est essentiel de ne pas considérer l'utilisation de Wordpress uniquement avec des thèmes, car vous serez vite limité. Au-delà de vos besoins spécifiques en développement, il est important de conserver le principe du backoffice de Wordpress intact dans la mesure où vous ne serez pas le ou la seul-e à mettre à jour le site. C'est pourquoi l'utilisation de "Elementor" ou tout autre type de module de gestion de contenu est à proscrire dans la mesure où ces extensions ne sont pas suffisamment simples d'utilisation. Un backoffice doit rester simple pour les administrateurs finaux qui seront dans la plupart des cas vos clients.
C'est pourquoi, plutôt que de travailler avec une extension de gestion de contenu, il faut travailler sur des templates de page et y intégrer des fonctions Wordpress spécifiques dont les définitions se trouvent le Codex Wordpress.
Selon les cas, vous pourrez avoir besoin de charger un fichier externe dans votre template de page (du CSS ou du Javascript par exemple). Pour ce faire, vous devez créer un dossier dans le dossier de votre thème enfant pour ensuite le charger dans votre template de page. La méthode en Wordpress consiste à capter l'URL du thème actif pour ensuite aller chercher dans le bon dossier le fichier que vous souhaitez.
Dans l'exemple ci-dessous nous chargeons un fichier Javascript nommé script.js
, placé dans un dossier js
à la racine de notre thème enfant :
Comme vu précédemment, l'extension ACF permet d'ajouter des méta-données dans une page. Pour récupérer la valeur de ces méta-données il existe une fonction Wordpress spécifique qu'il faut utiliser de la manière suivante :
Les méta-données
Que ce soir avec Shortcode Ultimate ou une autre extension proposant des shortcode, il est possible d'utiliser la fonction "do_shortcode()" dans un template de page pour charger le contenu d'un shortcode.
Dans l'exempel ci-dessous nous chargeons un formulaire de contact généré avec Contact Form 7 :
Vous pouvez faire en sorte de définir en backoffice le formule spécifique à charger dans votre template de page en associant la fonction "function_exists()" de la manière suivante :
Une page Wordpress peut être constituée de plusieurs éléments en plus de son contenu. Sur une page d'accueil par exemple il y à souvent une liste d'articles mis en avant, il est possible de le faire grâce à la fonction query_posts()
.
La mise en place de cette fonction ce fait de la manière suivante :
Dans le code ci-dessus plusieurs fonctions sont utilisées, en voici les définitions :
Selon le thème Wordpress que vous utilisez, plusieurs zones de menu sont définies. Si ce n'est pas le cas, vous pouvez en créer une en éditant le fichier "functions.php" de votre thème enfant en y ajoutant le code suivant :
Une fois votre zone de menu créée, vous pouvez l'éditer depuis le backoffice pour y ajouter les liens que vous désirez pour ensuite utiliser une fonction dans un template de page de la manière suivante :
L'utilisation de la fonction wp_nav_menu() intégre dans la page une liste HTML contenant des liens.