La gestion des fichiers template WordPress

La gestion des fichiers template WordPress

Il est possible de créer des templates uniques (en français, modèles) avec WordPress pour chacune de ses sections afin de personnaliser votre blogue jusque dans les moindres détails, de façon à utiliser WordPress comme un logiciel CMS (Content Management System, ou en français, Système de Gestion de Contenu). Votre blogue pourra ainsi se différencier de la myriade des autres sites web basés sur WordPress, tout en gardant ses avantages immenses au niveau de la gestion du contenu, le suivi avec les flux RSS, les commentaires des visiteurs et ses multiples extensions.

Le premier élément que les gens aiment bien changer est la page d’accueil, car celle-ci, si elle est bien conçue et conviviale, devrait servir de raccourci rapide vers toutes les sections d’un site, surtout si ce site en contient beaucoup. C’est un endroit privilégié aussi pour expliquer en quelques lignes en quoi consiste le site, et on peut y insérer divers graphiques de présentations polis, tels que les carrousels ou des sliders photographiques, question d’accrocher les nouveaux visiteurs et démontrer votre talent graphique.

Pour ce faire, il faut créer avant tout une page template (modèle), qui se trouve dans le répertoire de votre thème (wp-content/themes/). Vous pouvez copier un fichier déjà existant (celle qui affiche tous les publications récentes est index.php), la nommer home.php (ou à votre choix, bien que WordPress va toujours donner priorité à cette page selon son système hiérarchique). Afin de pouvoir trouver cette page template ensuite dans la section administration par son nom, il faut lui donner une en-tête comme suit au début de la page, et un titre:

<?php
/**
 * @package WordPress
 * @subpackage Nom_de_votre_thème
 */
/*
Template Name: Accueil
*/
?>

Vous devez indiquer le nom de votre thème en remplaçant Nom_de_votre_thème par le votre, et le nom après la partie Template Name est le titre qui sera affiché dans un menu déroulant de la section administration que vous pourrez sélectionner.

On va ensuite dans l’administration, section Réglages / Lecture / Options de Lecture, et dans la partie La page d’accueil affiche, on choisi Une page statique au lieu de Les derniers articles et on sélectionne la page voulue dans Page d’accueil, nommée Accueil dans l’exemple précédent, qui nous servira de template.

Cette page peut contenir du texte statique, comme une introduction au site, en remplaçant les morceaux appropriés (lire les sections Stepping Into Templates et The Loop pour vous familiariser avec le code WordPress typique de ses fichiers template) mais peut aussi faire appel aux articles publiées de différentes catégories avec le code php suivant:

<?php query_posts('category_name=nom-slug-de-la-categorie&showposts=5'); ?>

Ce bout de code va chercher les 5 dernières publications de la catégorie nom-slug-de-la-categorie, qui est son nom Identifiant de la catégorie, ou en anglais slug name. Vous pouvez ensuite les afficher comme suit:


Si ces articles contiennent des Champs Personalisés (Custom Fields), une fonction très pratique et accessible dans les versions récentes de WordPress qui permets d’associer divers valeurs à une publication, indépendante de son contenu textuel, comme la source d’une image ou un vidéo, vous pouvez y accéder avec la fonction suivante afin de l’ajouter à la liste des publications. Prenons par exemple une image dont le champs a le nom article_image:

    <?php while (have_posts()) : the_post(); $image = get_post_meta($post->ID, 'article_image', true); ?>
  • <?php the_title(); ?> <?php the_title(); ?>
  • <?php endwhile;?>

Voilà pour la page d’accueil. Voyons comment personnaliser la mise en page des autres sections du site avec des fichiers template différents. Avant tout, si vous ne l’avez pas encore lu, il est recommandé de se familiariser avec le système hiérarchique de WordPress pour ces fichiers templates. En quelques mots, WordPress va toujours chercher dans un thème les fichiers d’une section spécifique selon un ordre de priorités bien établies. On peut choisir l’identifiant numérique d’une catégorie, par exemple, ou ce que je préfère, son slug name, celui qu’on trouve dans le permalien.

Pour les diverses catégories, il suffit de créer un fichier dont le nom commence avec category- et ensuite le slug name et WordPress le choisira automatiquement, une fois téléchargé sur le serveur, lorsqu’il devra afficher cette catégorie d’articles. Par exemple, si vous avez une catégorie qui a le slug name « animaux », vous n’avez qu’à prendre le fichier archives.php comme point de départ (le fichier employé par défaut pour afficher les catégories) et de le sauvegarder sous le nom category-animaux.php pour que WordPress l’utilise par la suite avec cette catégorie.

Les pages uniques (section Pages dans l’administration) peuvent utiliser le même principe, soit créer un fichier qui commence avec le préfixe page- à partir du fichier original page.php et ensuite ajouter le slug name de la page, ou vous pouvez créer un fichier template pour toutes ces pages avec le nom que vous voulez, et ajouter une en-tête afin de l’identifier dans la section administration et associer ce template manuellement lorsque vous créez une nouvelle page dans le menu déroulant Attributs / Modèle:

<?php
/**
 * @package WordPress
 * @subpackage Nom_de_votre_thème
 */
/*
Template Name: Pages-Uniques
*/
?>

Les autres sections possibles de WordPress suivent généralement ce même principe expliqué dans le système hiérarchique WordPress, mais la dernière qui nous intéresse, le modèle pour la page d’un article du blog, ne suit malheureusement pas ce système (peut-être dans les version futures), alors si vous voulez personnaliser les pages des articles, pour leur donner une apparence différente selon leurs catégories respectives, il faudra utiliser une autre méthode.

Ces articles sont gérés par défaut par le fichier single.php. Avant de poursuivre, il faut sauvegarder ce fichier sous un autre nom afin de toujours avoir accès à l’original. Ouvrez ce fichier et sauvegardez le avec le nom single-original.php, ou celui de votre choix.

Maintenant que c’est fait, ouvrez à nouveau le fichier single.php et sauvegardez le avec le slug name de la catégorie d’articles voulus, par exemple, single-animaux.php. Ensuite, ouvrez encore le fichier single.php. Cette fois-ci, nous allons changer complétement le code de cette page afin d’appeler le bon fichier pour la catégorie en question, c’est pourquoi nous gardons une copie de l’original sous un autre nom:

<?php
$post = $wp_query->post;
if (in_category("animaux")) { include(TEMPLATEPATH . "/single-animaux.php"); }
elseif (in_category("arbres")) { include(TEMPLATEPATH . "/single-arbres.php"); }
else { include(TEMPLATEPATH . "/single-original.php"); }
?>

Dans cet exemple, si l’article se trouve sous la catégorie animaux, on va chercher le bon fichier single.php en question, soit single-animaux.php, et ainsi de suite pour les autres catégories, comme arbres, qui fera appel au fichier single-arbres.php. Dans le cas où on n’a pas de template spécifique pour une catégorie, on utilisera le fichier par défaut qui se nomme maintenant single-original.php.

3 thoughts on “La gestion des fichiers template WordPress

  1. salut

    merci pour cet tuto qui m’a beaucoup aidé.

    une question, comment ajoute egalement un template « commentaire » différent par rapport a chaque single?

    en clair, j’aurais un single spécial jeu et je voudrais changer le texte par rapport au reste du site. au lieu de « Laisser un message », pour le single-jeux.php, ça sera « repondre au quiz ».

    merci

  2. Bonsoir,
    Ce tuto est très intéressant mais je ne sais pas si je peux l’appliquer à l’ensemble de mes vidéos.
    Pour l’instant, elles sont toutes « rassemblées » dans une page « archives ». Mais je ne trouve pas cela très agréable.

    Je souhaite créer une page « Vidéo » où les internautes retrouveront six vidéos (avec le titre « le zapping du ??? » en dessous le player. Chaque page contiendrait 6 vidéo ou 8 et ainsi de suite.

    Est-ce compliqué à réaliser ?

    Pour intégrer ces vidéos dans mon site (www.info2tele.com) j’utilise des customs fiels :
    – video pour l’adresse web
    videos pour le code adresse

    Meci pour l’aide

  3. Merci pour ton article car cela va me permettre de créer un nouveau template pour organiser l’affichage de certaines pages sur mon blog.

    Mon but est de pouvoir faire un page template qui affiche une autre sidebar que sur le reste de mon blog.

    Je suppose qu’il me suffirait d’appeler une autre sidebar via ce code à la fin «  ».

    Mais je ne sais pas comment « construire » une autre sidebar ni comment « l’appeler » depuis mon page template.

    En bref, je souhaiterais pouvoir afficher une autre sidebar sur certaines pages ;-) J’espère que tu pourras m’aider car tes explications sont super claires :-)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *