Programmer en PHP sous WordPress
L'idée consiste à utiliser WordPress pour la structure, l'affichage, l'articulation du site internet tout en conservant la faculté d'y inclure des pages entières de scripts PHP adaptées à la mise en page habituelle du thème. La documentation sur le net est suffisante mais souvent parcellaire et diffuse. Je réunis donc ici les méthodes que j'utilise, à la fois pour en retrouver l'usage moi-même et pour simplifier les recherches d'autres programmeurs animés des mêmes intentions.
L'idée de base est d'utiliser un modèle de page, d'y inclure une page de script et de programmer ensuite dans cette seule page.
Je vous invite avant tout à utiliser Filezilla ou un autre client FTP pour accéder à votre zone d'hébergement distant.
En général, WordPress est installé à la racine (que je note ' / ') et comprend les dossiers suivants :
- /wp-content
- /wp-admin
- /wp-includes
Dans le dossier /wp-content, on trouve entre autres le sous-dossier /themes et, à l'intérieur, un dossier pour chaque thème installé, qu'il soit activé ou pas.
Bien sûr, un seul thème à la fois est activé, il convient de bien noter le nom de son sous-dossier. Dans mon cas, j'utilise le thème "/spacious" et je trouverai donc le dossier "spacious" ici :
/wp-content/themes/spacious
A l'intérieur du dossier du thème actif, on va trouver plusieurs sous-dossiers dont :
/wp-content/themes/spacious/page-template
Dans ce sous-sous-sous-sous-dossier, on va trouver les modèles de page par défaut.
Nous allons en créer un nouveau...
Pour cela, nous allons utiliser un éditeur de texte et copier le petit script suivant dans lequel il conviendra de remplacer le mot "spacious" par le nom de votre thème tel qu'il est utilisé comme nom de sous-dossier :
<?php
/* Template Name: mele-php-v1/*
get_header();
php do_action( 'spacious_before_body_content' );
// si l'on veut conserver la barre de menu latérale retirer les // suivants
//spacious_sidebar_select();
$pagename = get_query_var('pagename');
//$pagename est le nom donné à la page dans le menu "ajouter page"
$pageencours = $pagename . ".php";
include($pageencours);
php do_action( 'spacious_after_body_content' );
get_footer();
?>
Le Template Name, c'est à dire le nom sous lequel vous aller voir votre Template dans la liste des Templates est ici "mele-php-v1". Bien sûr vous pouvez en changer.
Vous pouvez sauvegarder ce petit script dans le sous-dossier /wp-content/themes/spacious/page-template. Il est plus simple de lui donner le même nom, soit mele-php-v1.php mais en fait cela importe peu car ce qui compte pour WordPress c'est cette phrase :
/* Template Name: mele-php-v1/*
Aussi, vous pourrez bien nommer le modèle "souvenir-de-voyage.php", cela ne fera ni chaud, ni froid à WordPress qui ne tiendra compte QUE du Template Name.

Vous avez ainsi créé un nouveau modèle de page assez particulier. Ce modèle sera accessible en colonne de droite (attributs de page > modèles) pour chaque nouvelle page que vous créerez (pas les articles). Là où il est particulier c'est qu'il permet l'inclusion d'une page de script et seulement cette inclusion. Autrement dit, tout ce que vous pourrez écrire dans la page via la page de composition de pages de WordPress n'apparaîtra jamais (mais ne causera aucun dommage). Pour dire les choses autrement, c'est le contenu de la page de script dont nous allons parler maintenant qui s'affichera quand la page sera appelée.
Nous avons créé un modèle de page mais pas la page "officielle" support de notre script, c'est à dire celle qui sera connue de WordPress et accessible par un permalien.
C'est ce que nous allons faire maintenant.
Nous passons par WordPress > ajouter page. On donne un titre et surtout... on modifie le modèle de page pour afficher "mele-php-v1"
Nous avons donc une page vierge avec un titre, un permalien et un modèle un peu exotique.
Le permalien est capital. Ce sera le nom de votre fichier de script. Soit vous utilisez celui donné par défaut, soit vous modifiez le permalien pour trouver un nom plus adéquat à votre démarche.
Admettons pour l'exemple que votre permalien soit le suivant : https://www.votresite.net/script-01/ et analysons ces trois lignes du script de modèle de page :
$pagename = get_query_var('pagename'); // $pagename va récupérer le texte "script-01"
$pageencours = $pagename . ".php"; // on y ajoute le suffixe ".php" ce qui fait "script-01.php"
include($pageencours);
On a ainsi inclus la page "script-01.php" (qui n'existe pas encore), grâce au modèle de page, dans la page officiellement appelée par WordPress au moyen du permalien : https://www.votresite.net/script-01/
Pour résumer, il faut se rappeler de trois informations capitales :
1/ Il faut une page WordPress (On a créé une page WordPress et on l'a liée à un modèle).
2/ Il faut un modèle spécial à appliquer à la page WP . (Le modèle est créé une fois pour toute et sert à n'importe quelle script car il récupère le permalien de la page qui l'appelle).
3/ Il faut un script PHP enregistré dans une page portant le nom du permalien de la page WP. (Il inclut une page de script dont le nom est composé à partir du permalien suffixé de .php)
Il convient donc maintenant de passer à la phase 3 et de créer la page de script "script-01.php".
Comme le modèle de page via un "include()" va l'inclure dans la page WordPress, il faut donner un chemin correct. Donc, soit on crée ce fichier à la racine du site, soit on modifie la ligne :
include(chemin/$pageencours);
Au moyen d'un éditeur de texte, créez la page mon_script_1.php et, via Filezilla par exemple, publiez-la à la racine de votre site ou dans le sous-dossier dont vous aurez indiqué le chemin.
Pour le moment vous pouvez copier ce petit script PHP :
<?PHP
echo '"page de script ici";
?>
A chaque modification de votre script, n'oubliez pas de re-publiez la page via Filezilla. Vous pourrez tester régulièrement l'avancée de votre programmation en appelant le permalien de votre page "officielle"
Si je n'ai pas été assez clair, s'il vous reste un doute que je puisse lever, n'hésitez pas à me contacter au moyen du formulaire ad hoc
Xc3j - 2021