Par défaut, les modèles de page dans WordPress sont statiques ce qui oblige à créer un modèle de page à chaque fois que l’on veut une disposition de page différente.
Voici une méthode simple et rapide pour créer dynamiquement des pages au contenu variable (formulaires, listes, sidebars, …) à partir d’un seul template .
Description
Objectif
Dans la console wp-admin, lorsque l’on créera une page basée sur notre modèle de page dynamique, 2 possibilités s’offriront à nous dans l’éditeur de page:
- soit, de manière classique, saisir du contenu statique manuellement.
- soit entrer le code suivant [EhXCode:FonctionPHP] où le paramètre FonctionPHP est le nom de la fonction qui sera appelée par le template de page.
Méthode
Pour cela nous allons créer:
- le modèle de page dynamique
- Un fichier dynamic_pages.php, inclus dans le fichier functions.php et qui contiendra les différentes fonctions PHP pouvant être appelées en fonction du rendu de page désiré.
Création du template Dynamique
Il faut commencer par créer un template de page.
Dans le dossier wp-content du thème créer le fichier Dynamic_Template.php et y insérer les lignes suivantes:
<?php // // -------------------------------------------------- Template name // Template Name: Modèle Dynamique // -------------------------------------------------- // // -------------------------------------------------- Header */ get_header(); //-------------------------------------------------- Contenu --> $query_page = get_page($page->ID); $contenu_page = $query_page->post_content; $EhXCode = null; if (strpos($contenu_page,"[EhXCode:") !== false){ $a = explode("[EhXCode:",$contenu_page); $b = explode("]",$a[1]); $EhXCode = $b[0]; } if ($EhXCode == null){ echo $contenu_page; } else{ $EhXCode(); } // -------------------------------------------------- Footer --> get_footer(); ?>
Création du fichier dynamic_pages.php
Dans le dossier wp-content du thème créer le fichier dynamic_pages.php et y insérer les lignes suivantes:
<?php // // Fonctions Pages Dynamiques // //********************************************************** // Page 01 //********************************************************** // function Page01(){ ?> <p> Voici la page 01 </p> <?php } //********************************************************** // Page 02 //********************************************************** // function Page02(){ ?> <p> Voici la page 02 </p> <?php } ?>
Il faut maintenant ajouter la ligne suivante au début du fichier functions.php du thème pour charger le fichier dynamic_pages.php.
include('dynamic_pages.php');
Test
C’est terminé.
Il ne reste plus qu’à créer 2 pages de test dans la console wp-admin en leur attribuant le nouveau modèle créé Modèle Dynamique.
Dans le contenu d’une des pages entrer le code [EhXCode:Page01] et dans l’autre [EhXCode:Page02].
Tester l’affichage des pages sur le site, la page 01 affiche Voici la page 01 et la page 02 affiche Voici la page 02 entre le header et le footer.