10) Personnaliser des contenus par page, catégorie, tags

Il existe de multiples façons de personnaliser l’affichage des contenus d’un site wordpress. On peut placer des codes de test dans des pages existantes pour afficher certains contenus au cas par cas. On peut aussi créer des templates (des fichiers comme index.php ou page.php, mais destinées à des usages spécifiques).

Précédent | 10/19 | Suivant

Pour les petits changements : les marqueurs conditionnels

Wordpress, lorsqu’il affiche un de ses contenus, sait duquel il s’agit. Il connait notamment son id, son nom, a quelle catégorie il appartient, s’il est une page ou un article. Il est possible dans un template d’affiner l’affichage de l’information en testant simplement ces informations. Dans le langage de Wordpress, ces test sont des marqueurs conditionnels.

Voir la pages sur les marqueurs conditionnels

Exemple :

<?php
if(is_single()){
echo "Cet article est fantastique";
}
?>

Affichera le texte "cet article est fantastique" si la page affiche un article.

<?php
if(is_single('17')){
echo "celui ci est particulièrement fantastique";
}
?>

affichera un texte si l’article affiché est l’article portant l’id 17.

Même logique pour les pages : is_page(), is_page(’42’) .
Même logique pour l’affichage des catégories ;
is_category() permet de savoir si la page courante affiche une catégorie

is_category(’3’) permet de savoir si la page affiche le contenu de la catégorie dont l’id est 3.

is_author(’1337’), is_year(’2009’), is_archive(), is_search() sont dans la même logique. Voir la page des marqueurs conditionnels pour plus d’information.

Exemple d’utilisation des marqueurs conditionnels :
- utiliser une css spécifique pour certaines pages
- placer un titre spécifique
- placer une image de fond, ou une image de header spécifique

Exemple

<?php
if (is_category()) {
echo "<link href='".TEMPLATEPATH."/categories.css' rel='stylesheet' type='text/css' />";
}
?>

Ce code créera un lien vers la feuille de style "categories.css" si la page affiche une catégorie.

On peut utiliser autant de fois que nécessaire des marqueurs conditionnels dans une page de template, évidemment.

Pour les changements importants : créer des templates spécifiques

La personnalisation via les marqueurs conditionnels est utiles pour les petits changements, mais peu produire du code long et illisible si on a des modifications en profondeur selon les cas de figure.
On préférera alors travailler avec des templates personnalisés.

Voir la page sur la hiérarchie des templates

Il existe des templates pour tous les contenus principaux de wordpress : page.php, single.php, categorie.php, search.php, archive.php sont des templates automatiquement employés par Wordpress s’ils sont disponibles. On peut cependant pousser plus loin la personnalisation en créant par exemple un template spécifique à une page. Pour cela il suffit de créer un fichier dans le dossier du thème.
- page-6.php pour la page portant l’id 6
- category-13.php pour les articles auquels sont associés la catégorie 6
- tag-2.php pour les articles auxquels sont associé le tag dont l’id est 2

Faire ses choix entre marqueurs et templates

Marqueurs conditionnels et templates font le même travail avec deux méthodes différentes, avec chacun leurs avantages. Faites un choix aussi clair que possible entre les deux techniques, sans quoi vous pouvez facilement vous mélanger les pinceaux.