Modification du thème

le plugin wp-dtree en action Suite à l’impossibilité d’installer le thème Suffusion pourtant longuement préparé (voir cet article), et une fois renseignements pris (chez Free, la mémoire étant limitée à 32Mo, il est plus que recommandé de garder un thème assez basique), je me suis dit que je pouvais garder mon thème actuel mais que rien ne m’empêchait de le transformer à nouveau.

De plus, après la mise à jour en WordPress 3.1.2, j’avais des difficultés à réactiver le plugin WP-dTree (ci-contre), qui affichait les catégories et les archives sous forme d’arborescence dynamique : un plugin très bien fait, élégant, mais un peu gourmand et qui ralentissait d’ailleurs le temps d’affichage de la page d’accueil du blog. Adieu donc le beau WP-dTree ! 🙁

Et j’ai donc commencé à modifier petit à petit le thème existant pour le faire ressembler à ce que j’avais obtenu avec Suffusion. Voilà donc les modifications déjà apportées (il en reste, cela fera l’objet d’autres articles).

Date des articles

Le plus visible pour l’instant, c’est le changement d’affichage de la date pour chaque article. Là j’ai simplement récupéré l’image de fond utilisée par Suffusion (en l’éclaircissant un peu), puis le code css correspondant. Ensuite il ne restait plus qu’à modifier les fichiers du thème qui l’utilisent (index.php, search.php et archive.php), comme suit :

<div class="date">
	<span class="month">
	<span class="day"> 
	<span class="year"> 
</div>

Colonne de gauche

Puis il donc fallu réorganiser complètement la colonne de gauche, puisque WP-dTree n’était plus possible. La liste des archives étant très longue, je l’ai déplacée tout en bas. Puis j’ai ajouté une section « Les 10 derniers articles ». Enfin, l’affichage des catégories (et des archives) entraînaient un autre petit changement. Voyons tout cela.

10 derniers articles

Pour ce faire, pas besoin de plugin, le code suivant suffit :

<h2>10 derniers articles</h2>
<ul>
<?php
	$args = array(
	'numberposts' => '10',
	'post_status' => 'publish'
	);
	$recent_posts = wp_get_recent_posts( $args );
	foreach( $recent_posts as $post ){
	echo '<li><a href="' . get_permalink($post["ID"]) . '" title="Look '.$post["post_title"].'" >' .   $post["post_title"].'</a> </li> ';
	}
?>
</ul>

Catégories

Là non plus, pas de besoin de plugins, il suffit d’utiliser la fonction wordpress avec les paramètres souhaités, dans mon cas :

wp_list_categories(‘show_count=1&title_li=’);

Et comme je voulais ne pas afficher tous les articles quand on sélectionne une catégorie, mais uniquement un extrait, j’ai modifié le fichier category.php pour remplacer la fonction the_content() par the_excerpt(). C’est la même modification que j’avais faite pour afficher les résultats de la recherche (voir cet article).

Archives

Pour les archives, j’ai finalement trouvé un autre plugin : PW-Archives, dont l’auteur commence la description ainsi : « The primary goal of PW_Archives is to be light-weight »… parfait pour Free, me suis-je dit ! Il liste donc les archives, en les classant par année.

Voilà ce que donne le code :

<h2>Archives</h2>
<?php PW_Archives( $args = array(
	'order' => 'DESC',
	'year_count' => 'ALL',
	'year_format' => 'Y',
	'year_template' => '%YEAR% (%POST_COUNT%)',
	'month_expand' => 'ALL',
	'month_format' => 'F',
	'month_template' => '%MONTH% (%POST_COUNT%)',
	'show_posts' => 'NO',
	'faster_permalinks' => 'YES',
	'post_date_format' => 'jS',
	'post_template' => '%POST_DATE%: %POST_TITLE% (%COMMENT_COUNT%)',
) ); ?>

De la même manière, si l’on clique sur un mois ou une année donnée, seuls les extraits d’articles sont affichés, puisque l’on utilisera également le fichier archive.php. À noter que pour pouvoir afficher en haut de la page la période choisie, j’ai du activer la ligne suivante dans archive.php :

<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>

Voilà… sans oublier la petite icône (également récupérée du thème Suffusion au lieu de « accueil » dans le menu en haut de page.

La suite au prochain numéro !

2 réflexions sur « Modification du thème »

Laisser un commentaire

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