Nous venons de voir ce que contenait le template page.php
. Il est plutôt basique mais joue bien son rôle.
Une des particularités des Pages, et j’en avais déjà parlé, est de pouvoir créer des templates de Page. Il s’agit tout simplement d’un fichier où vous mettez le code PHP que vous voulez. Ce code sera affiché à travers une Page, du moment que vous lui disiez (à cette Page) d’utiliser ce template.
Cela se fait donc en 3 étapes :
- Créer un template de Page
- Créer une Page dans l’admin WordPress
- Dire à cette dernière d’utiliser le template précédemment créé
Création d’un template de Page
Un template de Page n’est autre qu’un fichier PHP particulier. On peut lui donner le nom que l’on veut, tant qu’il ne s’agit d’un des noms réservés par WP.
Créons par exemple un fichier qui recensera certaines statistiques du site :
- nombre de Posts
- nombre de Pages
- nombre de commentaires
- une liste des Pages (c’est cadeau ça)
Dupliquons page.php
et renommons-le stats.php
(ou hasta-la-vista.php
, le choix est libre et pas pénalisant pour la suite). La première chose à faire est de transformer ce fichier en un template de Page. Pour cela, rien de plus simple. Il faut ajouter le bout de code suivant au début du fichier :
<?php /* Template Name: Statistiques */ ?>
Cela définit non seulement le fichier stats.php
comme étant un template de Page mais aussi le nom du template lui-même.
Voici donc le code entier du fichier stats.php
:
<?php /* Template Name: Statistiques */ ?> <?php get_header(); ?> <div class="main page"> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <div class="post"> <h1 class="post-title"><?php the_title(); ?></h1> <div class="post-content"> <p>Nombre de Posts : <strong><?php echo wp_count_posts()->publish; ?></strong></p> <p>Nombre de Pages : <strong><?php echo wp_count_posts('page')->publish; ?></strong></p> <p>Nombre de commentaires publiés : <strong><?php echo wp_count_comments()->approved; ?></strong></p> </div> </div> <?php endwhile; ?> <?php endif; ?> </div> <?php get_sidebar(); ?> <?php get_footer(); ?>
Vous aurez remarqué que la fonction the_content()
a disparu au profit des 3 paragraphes. Il est néanmoins possible de la garder :
<div class="post-content"> <?php the_content(); ?> <p>Nombre de Posts : <strong><?php echo wp_count_posts()->publish; ?></strong></p> <p>Nombre de Pages : <strong><?php echo wp_count_posts('page')->publish; ?></strong></p> <p>Nombre de commentaires publiés : <strong><?php echo wp_count_comments()->approved; ?></strong></p> </div>
Dans ce cas, le contenu que vous rentrerez dans le WYSIWYG de l’admin WP sera affiché avant les 3 paragraphes.
Utilisation d’un template de Page
Nous avons créé le fichier. Maintenant il faut l’afficher. Pour cela, il faut d’abord créer une Page dans l’admin WordPress. Nommez-la comme bon vous semble (la mienne s’appelle « Statistiques du site »). Remplissez le contenu si votre template l’affiche.
Puis déplacez votre regard vers la droite de l’écran, et vous verrez ce joli bloc intitulé « Attributs de la page » :
Voici résumées les spécifités des Pages dont on avait déjà parlé, à savoir :
- Hiérarchie des Pages (« Parent »)
- Template de Page
- Ordre des Pages
Celui qui nous concerne actuellement est le deuxième. Cliquez sur le menu déroulant et choisissez « Statistiques » :
« Modèle par défaut » correspond à page.php
.
« Statistiques » correspond à stats.php
.
Et voilà ! On vient de faire le lien entre notre template stats.php
et la Page « Statistiques du site ».