annuaire webmsters

Créer une Page Template pour WordPress

8 juin 2010 | By | 11 Replies More

Pour un récent projet, j’ai du utiliser WordPress comme CMS et ajouter une page Blog. Vous l’avouerez, cela ne manque pas de piquant pour un moteur de blog !

L’idée est donc de créer une PAGE et d’associer une template qui régentera l’affichage des informations tel qu’on le souhaite. Dans mon cas, je compte tout simplement afficher un blog avec les derniers articles saisies et gérer la pagination.

Pour ce, rien de très complexe… Tout d’abord, rendez-vous dans votre framework préféré… et commençons par créer un fichier PHP que nous nommerons blogpage.php.

Ensuite, saisissez le code suivant :

<?php
/*
Template Name: Page Blog
*/
?>

<?php get_header(); ?>
<!-- Afficher les posts et gestion de la pagination -->
<?php $page = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("showposts=5&paged=$page"); ?>

 <div id="colLeft">

 <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
 <!-- begin post -->
 <div>
 <h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
 <div>
Publié par <?php the_author(); ?> dans <?php the_category(', ') ?> -<?php comments_popup_link('Aucun commentaire', '1 commentaire', '% commentaires'); ?>
 <div><?php the_time('M') ?><br/><strong><?php the_time('j') ?></strong></div>
 </div>
 <?php the_content(__('read more')); ?>
 </div>
 <!-- end post -->

 <?php endwhile; ?>

 <div>
 <div><?php next_posts_link('Plus ancien') ?></div>
 <div><?php previous_posts_link('Plus récent') ?></div>
 </div>
 <?php else : ?>
 <p>L'information demandée n'existe pas ou a été déplacée.</p>
 <?php endif; ?>
 </div>
 <!-- end colLeft -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Tout d’abord, nous expliquons à WordPress que nous souhaitons créer un nouveau modèle avec les lignes suivantes :

<?php
/*
Template Name: Page Blog
*/
?>

Dans WordPress, vous aurez accès à votre template à cet endroit :

L’affichage est géré par la combinaison de « query_posts » (on interroge la BDD) et une boucle (while (have_posts()) : the_post();). Tout ce que nous avons à faire, c’est ajouter les paramètres dont nous besoin… en l’occurrence une variable « $page » combiné à 3 fonctions « get_query_var() », « next_posts_link() » et « previous_posts_link() » pour gérer la pagination des posts.

<!-- Afficher les posts et gestion de la pagination -->
<?php $page = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("showposts=5&paged=$page"); ?>

 <div id="colLeft">

 <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

Le reste est du décor ! Dans mon thème, j’affiche le Header. Puis, je gère le DIV de gauche. Enfin, reste juste à ajouter le SideBar et le Footer pour finaliser la page.

Cet exemple est en exploitation sur Aide au Vietnam

Site Internet : Free Tools
Source d’infomation : Codex WordPress
Licence : Gratuit

Category: Code

  • Benoit

    SI je ne m’abuse, pour faire ce que tu indiques au début « utiliser WordPress comme CMS et ajouter une page Blog », tu crées plutot une page « accueil » puis une page « blog », puis tu vas dans les « reglages » puis « lecture » de wordpress, tu modifies « La page d’accueil affiche » sur une « page statique » pour faire pointer ta home sur « accueil » et ta page articles sur « blog ».
    Cela est tout de meme moins piquant que tu le laisses entendre :P
    Pour ce qui est de l’exemple pour créer un template complémentaire personnalisé, bonne initiative ;)

  • http://l2design.be Lapinlove404

    je confirme ce que dit Benoit…

    Pourquoi faire simple quand on peut faire compliqué ?

    La solution du template personnalisé peut cependant être utile si on sort du CMS ‘simple’ avec un blog ‘classique’

    je viens par exemple de finir un site qui propose des articles d’actualité type « Press release » sur une page et des articles plus perso sur un autre… le principe est alors le même que celui présenté ici mais en limitant la/les catégories affichées… Chaque page ayant alors sa propre sidebar et d’autres trucs du genre…

  • http://www.reseau-cameleon.be/ Antoine Carré

    Si je ne m’abuse WP 3 fera ça bientot avec la possibilité de créer des contenu hors « pages » et « blog ».

  • http://www.mtnconcept.com myrmex

    Seriez-vous en train d’insinuer que j’ai ré inventé la roue !? :-) Bon, je suis passé totalement à coté de cette option dans le back office… et ça marche !

  • http://www.info2tele.com info2télé

    Bonsoir,

    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

    Merci pour l’aide

  • Thomas

    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 :-)

  • Julien B.

    Je rencontre un petit problème lors de cet installation :

    1) Mon blog est dans le fichier racineduftp/blog/
    2) Je crée une page blog avec comme modele la pageblog.php du template

    -> il y a apparement un conflit a l’adresse suivante : http://www.monsite.fr/blog/

    Cette page Web présente une boucle de redirection.

  • Julien B.

    Problème résolu en changeant le nom de l’installe wordpress,
    j’ai remplacé monftp/blog/ par monftp/wp/ et youpi ca marche…
    existe-t-il une autre solution ?

  • http://apse.ch Ariane

    Bonjour,

    Savez-vous s’il existe un moyen sur WordPress d’utiliser deux thèmes sur un même blog?
    Merci d’avance pour vos réponses…

  • http://www.edcom.fr MacSim

    Sur un thème que j’ai créé, le choix de template lors de la création d’une page ne s’affiche pas. avez-vous déjà rencontré le problème?

  • myrmex

    Difficile de donner une réponse … juste des pistes…
    l’entête du fichier php commence bien par :
    < ?php
    /*
    Template Name: Le nom de ma template
    */
    ?>
    Ce fichier dans le répertoire du theme ?