Je ne sais pas si vous vous souvenez, mais dans la version précédente de mon blog, il y a avait un énorme pied de page constitué de deux lignes de trois colonnes.
Première ligne :
- Un accès à la liste des catégories des billets
- Une liste des billets à lire, devient une liste des billets les plus lus.
- Une liste de billets affichés aléatoirement
Seconde ligne :
- Une liste de liens pour faire la promotion des blogs amis
- La liste des sites où je suis présent (forums, blog, réseaux sociaux)
- Une liste de ressources incontournables sur les sujets qui m’intéressent
Pour éviter de passer du temps à coder et s’amuser à réinventer la roue, il suffit de passer par des sidebars. Par défaut, il n’en existe pas, leur présence dépend des modèles que vous utilisez. Ces derniers sont livrés avec un fichier php functions.php dans lequel l’auteur déclare les fonctionnalités spécifiques au thème. A priori, il est envisageable d’utiliser autant de sidebars que nécessaire pour la mise en page de votre contenu (j’ai fais un test jusqu’à 25).
Si l’enregistrement d’une sidebar dans le dashboard est assez simple, je trouve assez bizarre la façon de l’intégrer au modèle. J’ai eu recours à deux sidebars :
if (function_exists('register_sidebar')) register_sidebar(array( 'name' => 'FooterLine1', 'before_widget' => '<div>', 'after_widget' => '</div>', 'before_title' => '<h3>', 'after_title' => '</h3> <div>', ) ); if (function_exists('register_sidebar')) register_sidebar(array( 'name' => 'FooterLine2', 'before_widget' => '<div>', 'after_widget' => '</div>', 'before_title' => '<h3>', 'after_title' => '</h3> <div>', ) );</div> |
Pour appeler les sidebars depuis les templates, il faut écrire :
get_sidebar() accepte comme argument le nom de la sidebar que vous aurez préalablement enregistré. Ensuite via le dashboard, il suffit de les remplir avec les widgets qui vont bien. Là où c’est bizarre, ce n’est pas tellement l’obligation de créer des fichiers intitulés sidebar-FooterLine1.php et sidebar-FooterLine2.php (fichier de contenu affiché si vous n’avez pas alimenté les sidebars via le Dashboard), mais l’obligation d’insérer ce code minimum dans les fichiers cités :
<div class="footerlines"> <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar("FooterLine1") ) : ?> <!-- Rien --> <?php endif; ?> <div style="clear: left;"></div> </div> <!-- /footerlines --> |
et
<div class="footerlines"> <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar("FooterLine2") ) : ?> <!-- Rien --> <?php endif; ?> <div style="clear: left;"></div> </div> <!-- /footerlines --> |
Il faudrait parcourir un peu le code source de WordPress pour comprendre la logique, mais peut être quand j’aurais plus de temps à y consacrer.
Pour terminer, j’ai du créer un widget pour afficher les derniers commentaires groupés par date, je vous en fais part :
function sutekidane_widget_badge_lastComments() { global $wpdb; $rqListeCommentaires = " SELECT comment_author, comment_ID, ID, comment_post_ID, DATE_FORMAT(comment_date_gmt, \"Les commentaires du %d/%m/%Y\") as date_formate, DATE_FORMAT(comment_date_gmt, \"à %H\h%i\") as heure FROM $wpdb->comments, $wpdb->posts WHERE comment_approved = '1' AND $wpdb->comments.comment_post_ID = $wpdb->posts.ID AND post_password = '' AND comment_type = '' ORDER BY comment_date_gmt DESC LIMIT 0, 15 "; $rsListeCommentaires = mysql_query($rqListeCommentaires) or die (mysql_error("Les die(), c'est mal")); echo "\t\n<div class=\"footerline\">"; echo "\t\n<h3 id=\"badge_lastcomments\">Derniers Commentaires</h3>"; if (mysql_num_rows($rsListeCommentaires) > 0) { $dateBalise = ""; echo "<dl>"; while ($commentaire = mysql_fetch_object($rsListeCommentaires)) { if ($commentaire->date_formate != $dateBalise) { if ($dateBalise != '') echo "\n\t\t\t</ul>\n\t\t</dd>"; echo "\n\t<dt>$commentaire->date_formate</dt>\n\t\t<dd>\n\t\t\t<ul>"; $dateBalise = $commentaire->date_formate; } echo "\n\t\t\t\t<li> $commentaire->heure par <a href=\""?phpMyAdmin=f8aa7401db868c47ec1c5040c0d7b43d . get_permalink($commentaire->ID) . "#comment-" . $commentaire->comment_ID . "\">$commentaire->comment_author</a> </li>"; } echo "\n\t\t\t</ul>\n\t</dd>\n\t</dl>"; } else { echo "Il n'y a aucun commentaire pour le moment"; } echo "\n\t</div>"; } if (function_exists('register_sidebar_widget') ){ register_sidebar_widget('Badge Sutekidane Last Comment', 'sutekidane_widget_badge_lastComments'); } |
Et voilà, le footer maous costaud est donc de retour












« Pour éviter de coder le moins possible » << tu veux donc coder le plus possible ?
@Renaud,
j’ai mangé mes mots, merci, je corrige
Salut Thanh,
Si tu veux coder encore moins, tu peux utiliser la méthode query de $wpdb ( query(‘query’); ?> ).
http://codex.wordpress.org/wpdb
Ca fait partie des trucs bien foutus de wp
@Grégoire,
merci pour l’info