Utilisation de WordPress comme un CMS

Fabrice 9 mn Webmastering

Utilisation de WordPress comme un CMS

Cela fait un petit moment que je voulais tester les capacités de WordPress en tant que système de gestion de contenu et surtout je voulais faire ce test sur un site en fonction pour voir les problématiques que cela pouvait poser. A la recherche d'un sujet d'étude, mon choix s'est porté sur une actrice en l'occurrence Armelle Deutsch (site désormais hors ligne). L'objectif étant d'installer un minimum de plugins et de ne pas bidouiller le code (très difficile à gérer lors des mises à jours du script). Première étape, comme pour un site classique, établir un plan que voici :

  • Accueil
  • Actualité
  • Biographie
  • Filmographie (avec une page par film)
  • Photos
  • Goodies
  • Liens
  • Plan du site
  • A propos

La partie actualité est gérée par la fonction première de WordPress, à savoir le blog avec une seule catégorie. Après avoir crée mes pages (sans oublier de leurs attribuer un ordre), je passe à la partie menu qui sera situé en haut. Un petit tour sur le codex pour voir quelles sont les possibilités et voici le résultat :

<div id="sidebar">
	<ul>
		<li><a href="<?php echo get_settings('home'); ?>" title="<?php bloginfo('name'); ?>">Accueil</a></li>
		<li><a href="<?php echo get_settings('home'); ?>/category/actualite/" title="Actualité">Actu</a></li>
		<?php wp_list_pages('sort_column=menu_order&depth=1&title_li=&exclude=12,13'); ?>
	</ul>
</div>

La fonction wp_list_pages permet de classer les pages principales (pages mères ; les pages des films étant liées à la page filmographie, elles ne seront donc pas visibles dans le menu ; par défaut dans la fonction), mais aussi d'exclure celle qui n'ont pas à apparaître dans le menu, dans mon cas, le plan et à propos (n°12 et 13). Elles seront incluses directement dans le thème. Un des intérêt du système de template de WordPress est de pouvoir créer des modèles pour les pages. Une autre méthode consiste donc à créer une page home pour l'accueil et une pour les articles, de les associer au modèles correspondants et de le spécifier dans les options. Outre les classiques plan et liens, j'ai conçu un modèle pour la galerie photos. Il suffit d'introduire le code voulu juste après la fonction the_content. L'installation de la galerie SimpleViewer est assez simple si l'on oublie pas de spécifier les bons chemins pour l'accès aux fichiers Flash et XML. J'ai opté pour l'installation manuel de la galerie, mais il doit être possible d'automatiser l'envoi des photos en mettant le dossier simpleviewer dans la partie uploads. Il ne reste plus que la page d'accueil à modifier (index.php dans le thème). Comme indiqué plus haut, on peut tout à fait gérer l'accueil comme n'importe quelle autre page, mais je n'ai pas choisi cette option. Je prépare donc mon texte et ma photo et il me faut ajouter la liste des dernières news et c'est la fonction get_posts qui va m'y aider en faisant un boucle sur les 6 derniers articles comme ceci :

<ul class="lastnews">

<?php
$lastposts = get_posts('numberposts=6');
foreach($lastposts as $post) :
setup_postdata($post);
?>
<li><a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a><br/><?php the_time('d F Y') ?></li>

<?php endforeach; ?>

</ul>

Pour aller plus loin sachez qu'il est également possible de créer un menu déroulant listant automatiquement les pages filles correspondantes (il faut tout de même mettre les mains dans le code du thème). Ce type de solution convient parfaitement pour des sites d'artistes, de collectivités locales ou de petites mairies, entre autres. Je dirais qu'il y tout de même un inconvénient : les mises à jours, dont certaines sont obligatoires (celles concernant la sécurité). Dans le cas de ce type d'utilisation pour des clients, il est tout de même recommandé de proposer un forfait pour la maintenance. Plugins utilisés :

  • Formulaire de contact
  • Permalink Redirect
  • Backup
  • Math Comment Spam Protection
  • Akismet