Cet article est une traduction du tutoriel How To Create a WordPress Theme rédigé par Ian Stewart, l’auteur du framework WordPress Thematic disponible sur son site ThemeShaper. Avec son aimable autorisation et mes remerciements.
Un peu comme nous l’avons fait avec index.php, nous allons établir un template maître que nous réutiliserons pour coder les autres templates. Dans ce cas, notre template maître est archive.php.
Ce que doit faire archive.php (et les autres templates de la même famille) est de montrer les articles sélectionnés selon un critère. Une plage de date, ou des articles d’un auteur particulier, d’une catégorie ou d’un mot clé. Donc à la base c’est assez proche d’index.php. D’ailleurs, en lisant le nom d’un template on peut généralement deviner ce qu’il est sensé faire.
Commençons avec notre template modèle des précédentes leçons et construisons sur cette base.
Voici la div #content de votre fichier archive.php. Notez les balises conditionnelles WordPress en haut du fichier pour vérifier dans quel type de template nous sommes.
Le template Author diffère sur très peu de choses, ce que vous allez plutôt apprécier. Copiez archive.php et renommez le author.php. Tout ce qu’il y a à changer est la section page-title :
Le template Category n’est pas beaucoup plus compliqué maintenant que nous avons le template Archive. Copiez archive.php et renommez-le category.php.
Maintenant, ouvrez functions.php. Nous allons y ajouter une fonction personnalisée – issue du superbe thème Sandbox – ce qui va rendre notre template Category un peu plus facile à utiliser.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// For category lists on category archives: Returns other categories except the current one (redundant)function cats_meow($glue){$current_cat= single_cat_title('',false);$separator="\n";$cats=explode($separator, get_the_category_list($separator));foreach($catsas$i=>$str){if(strstr($str,">$current_cat<")){unset($cats[$i]);break;}}if(empty($cats))returnfalse;returntrim(join($glue,$cats));}// end cats_meow
Notre fonction personnalisée cats_meow() enlève la catégorie actuellement affichée dans la pages de catégories. En d’autres termes elle va enlever ces catégories redondantes de la liste des catégories qui est sous l’extrait de notre article.
Maintenant, revenons à category.php, remplacez la section page-title avec le code qui suit :
<span class="cat-links"><span class="entry-utility-prep entry-utility-prep-cat-links"><?php _e('Posted in ','your-theme');?></span><?php echo get_the_category_list(', ');?></span>
par le code modifié :
1
2
3
4
<?phpif($cats_meow= cats_meow(', ')):// Returns categories other than the one queried ?><span class="cat-links"><?php printf( __('Also posted in %s','your-theme'),$cats_meow)?></span><span class="meta-sep">|</span><?phpendif?>
Le Template Tag
Le template Tag est presque identique au template Category, sauf que c’est pour les mots clés. Vous connaissez la suite : copiez archive.php et renommez-le en tag.php.
Nous avons également une fonction personnalisée – toujours du superbe thème Sandbox – pour notre functions.php appelée tag_ur_it(). Elle fonctionne exactement comme cats_meow() sauf qu’elle enlève les mots clés redondants.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// For tag lists on tag archives: Returns other tags except the current one (redundant)function tag_ur_it($glue){$current_tag= single_tag_title('','',false);$separator="\n";$tags=explode($separator, get_the_tag_list("","$separator",""));foreach($tagsas$i=>$str){if(strstr($str,">$current_tag<")){unset($tags[$i]);break;}}if(empty($tags))returnfalse;returntrim(join($glue,$tags));}// end tag_ur_it
Maintenant dans tag.php, remplacez le page-title par :
<?phpif($tag_ur_it= tag_ur_it(', ')):// Returns tags other than the one queried ?> <span class="tag-links"><?php printf( __('Also tagged %s','your-theme'),$tag_ur_it)?></span><?phpendif;?>
Et voilà !
Cet article fait partie du tutoriel Créer un Thème WordPress :
Créer un thème WordPress : 10. Les Templates Archive, Author, Category et Tag
Un peu comme nous l’avons fait avec
index.php, nous allons établir un template maître que nous réutiliserons pour coder les autres templates. Dans ce cas, notre template maître estarchive.php.Ce que doit faire
archive.php(et les autres templates de la même famille) est de montrer les articles sélectionnés selon un critère. Une plage de date, ou des articles d’un auteur particulier, d’une catégorie ou d’un mot clé. Donc à la base c’est assez proche d’index.php. D’ailleurs, en lisant le nom d’un template on peut généralement deviner ce qu’il est sensé faire.Commençons avec notre template modèle des précédentes leçons et construisons sur cette base.
Le Template Archive
Voilà le plan du template Archive.
the_post()Voici la div #content de votre fichier
archive.php. Notez les balises conditionnelles WordPress en haut du fichier pour vérifier dans quel type de template nous sommes.Le template Author
Le template Author diffère sur très peu de choses, ce que vous allez plutôt apprécier. Copiez
archive.phpet renommez leauthor.php. Tout ce qu’il y a à changer est la section page-title :Le template Category
Le template Category n’est pas beaucoup plus compliqué maintenant que nous avons le template Archive. Copiez
archive.phpet renommez-lecategory.php.Maintenant, ouvrez
functions.php. Nous allons y ajouter une fonction personnalisée – issue du superbe thème Sandbox – ce qui va rendre notre template Category un peu plus facile à utiliser.Notre fonction personnalisée
cats_meow()enlève la catégorie actuellement affichée dans la pages de catégories. En d’autres termes elle va enlever ces catégories redondantes de la liste des catégories qui est sous l’extrait de notre article.Maintenant, revenons à
category.php, remplacez la section page-title avec le code qui suit :et dans la div .entry-utility, remplacez…
par le code modifié :
Le Template Tag
Le template Tag est presque identique au template Category, sauf que c’est pour les mots clés. Vous connaissez la suite : copiez
archive.phpet renommez-le entag.php.Nous avons également une fonction personnalisée – toujours du superbe thème Sandbox – pour notre
functions.phpappeléetag_ur_it(). Elle fonctionne exactement commecats_meow()sauf qu’elle enlève les mots clés redondants.Maintenant dans
tag.php, remplacez le page-title par :et dans .entry-utility, remplacez…
par le code modifié qui suit :
Et voilà !