<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>css 4 design &#187; Widget</title>
	<atom:link href="http://css4design.com/tag/widget/feed" rel="self" type="application/rss+xml" />
	<link>http://css4design.com</link>
	<description>Le blog de l&#039;intégrateur web</description>
	<lastBuildDate>Thu, 26 Jan 2012 19:13:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<atom:link rel='hub' href='http://css4design.com/?pushpress=hub'/>
		<item>
		<title>Ajouter un bouton Paypal «Faire un don» dans WordPress</title>
		<link>http://css4design.com/ajouter-un-bouton-paypal-faire-un-don-dans-wordpress</link>
		<comments>http://css4design.com/ajouter-un-bouton-paypal-faire-un-don-dans-wordpress#comments</comments>
		<pubDate>Thu, 27 May 2010 20:11:24 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[Bouton]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Faire un don]]></category>
		<category><![CDATA[Paypal]]></category>
		<category><![CDATA[Widget]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://css4design.com/?p=6268</guid>
		<description><![CDATA[Après la conférence F8 de Facebook, plusieurs dizaines de milliers d&#8217;éditeurs de blogs se sont empressés d&#8217;ajouter un bouton Like ou Recommend dans l&#8217;espoir de créer le buzz sur Facebook. Je n&#8217;ai pas fait exception à cette règle. Toutefois &#8212; sans remettre en question la pertinence de l&#8217;affichage de ce bouton dans certains cas &#8212; je n&#8217;ai pas constaté de résultat en 15 jours d&#8217;utilisation. C&#8217;est en supprimant ce gadget, qu&#8217;une citation de Jean Cocteau m&#8217;est revenu à l&#8217;esprit : Il n&#8217;y pas d&#8217;amour, il n&#8217;y a que des preuves d&#8217;amour ! J&#8217;ai ensuite cherché un moyen de concrétiser ce sentiment autrement que [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fajouter-un-bouton-paypal-faire-un-don-dans-wordpress">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fajouter-un-bouton-paypal-faire-un-don-dans-wordpress&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a&amp;b=2" height="61" width="50" />
			</a>
		</div><p>Après la <a href="http://thenextweb.com/fr/2010/04/22/conference-facebook-f8-toutes-les-annonces/">conférence F8</a> de Facebook, plusieurs dizaines de milliers d&#8217;éditeurs de blogs se sont empressés d&#8217;ajouter un bouton <em>Like</em> ou <em>Recommend</em> dans l&#8217;espoir de créer le <em>buzz</em> sur Facebook. Je n&#8217;ai pas fait exception à cette règle. Toutefois &#8212; sans remettre en question la pertinence de l&#8217;affichage de ce bouton dans certains cas &#8212; je n&#8217;ai pas constaté de résultat en 15 jours d&#8217;utilisation. C&#8217;est <a href="http://br1o.fr/boutons-like-ou-recommend-facebook-a-la-poubelle/">en supprimant ce gadget</a>, qu&#8217;une citation de Jean Cocteau m&#8217;est revenu à l&#8217;esprit : <q cite="Jean Cocteau">Il n&#8217;y pas d&#8217;amour, il n&#8217;y a que des preuves d&#8217;amour</q> ! J&#8217;ai ensuite cherché un moyen de concrétiser ce sentiment autrement que par un <em>J&#8217;aime</em> ou <em>J&#8217;aime pas</em>.<span id="more-6268"></span></p>

<h2>Ouvrir un compte Paypal</h2>

<p>Dans un premier temps, il est nécessaire d&#8217;ouvrir un compte sur <a href="http://www.paypal.com">Paypal</a>. C&#8217;est simple, rapide et ça ne coûte rien. J&#8217;utilise ce service depuis plusieurs années sans problème pour régler mes achats sur eBay, à l&#8217;origine, mais aussi pour la plupart de mes pérégrinations consuméristes et réticulaires quand c&#8217;est possible.</p>

<h2>Créer votre bouton Faire un don</h2>

<p>Une fois connecté à votre compte Paypal, cliquez sur l&#8217;onglet <em>Solutions e-commerce</em> puis sur <em>Paiements sur site marchand</em> dans le menu situé sur la gauche.  Sous les icônes de cartes bancaires, vous trouverez des exemples de boutons de paiement à installer. Choisissez <em>Acceptez des dons en ligne</em> puis <em>Créer un bouton</em>.</p>

<h3>Choisissez un type de bouton et saisissez les détails de votre paiement</h3>

<p>A cet étape, le plus important est de <em>Personnaliser le bouton</em>. Par défaut, le bouton <em>Faire un don</em> est sélectionné mais rien ne vous empêche d&#8217;utiliser votre propre image pour faire office de bouton, comme je l&#8217;ai fait sur ce blog avec l&#8217;image située à droite du logo. Pour cela, vous devrez créer votre visuel ou utiliser une image existante. Dans les deux cas, il faudra fournir son URL.</p>

<h3>Enregistrez vos boutons (facultatif)</h3>

<p>Cocher cette case est toujours utile : qui ne voudrait pas protéger ses boutons des modifications frauduleuses ?</p>

<h3>Fonctions de paiement (facultatif)</h3>

<p>Choisissez les options permettant à vos gentils donateurs de vous laisser un mot ou <em>Diriger vos clients vers cette URL s’ils annulent leur paiement</em> ou encore <em>Diriger vos clients vers cette URL lorsqu’ils terminent leur paiement</em>. L&#8217;ajout des variables avancées permettra de mettre en place un <em> tracking</em> pour affiner vos statistiques dans votre outil de mesure d&#8217;audience préféré.</p>

<p>Il ne vous reste plus qu&#8217;à <em>Créer le bouton</em> et à copier-coller le code HTML du formulaire dans votre template WordPress ou dans un <em>Widget Text</em> à l&#8217;endroit où vous voulez faire apparaitre votre bouton Paypal.</p>

<h2>Créer des zones de Widgets dans WordPress</h2>

<p>Si votre thème ne dispose pas de zones widgétisables, voici quelques tutoriels qui devraient vous aider dans cette tâche :</p>

<ul>
    <li><a rel="bookmark" href="http://css4design.com/les-widgets-dans-wordpress-25-avec-widgetisator">Les widgets dans WordPress avec widgétisator ;)</a></li>
    <li><a rel="bookmark" href="http://css4design.com/tutoriel-wordpress-2-2-la-sidebar-a-la-loupe-comprendre-les-widgets-et-declarer-une-war">Tutoriel WordPress : la sidebar à la loupe, comprendre les widgets</a></li>
    <li><a rel="bookmark" href="http://css4design.com/resolu-probleme-de-duplication-et-decalage-des-widgets-dans-wordpress">[Résolu] Problème de duplication et décalage des widgets dans WordPress</a></li>
</ul>

<h2>Il a bon dos, Cocteau&#8230;</h2>

<p>Oui, je le reconnais bien volontiers : citer Jean Cocteau pour justifier une tentative de monétisation est un peu décalé, mais <a href="http://br1o.fr/?s=monetisation">j&#8217;assume</a> ;)</p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css4design.com/liens-javascript-jquery' title='390 ressources Javascript &amp; jQuery'>390 ressources Javascript &#038; jQuery</a></li><li><a href='http://css4design.com/wordpress-basics' title='Soyez « ♥ Basics »'>Soyez « ♥ Basics »</a></li><li><a href='http://css4design.com/baw-auto-shortener-raccourcisseur-url-wordpress' title='BAW Auto Shortener &#8212; Raccourcisseur d&#8217;URL pour WordPress'>BAW Auto Shortener &#8212; Raccourcisseur d&#8217;URL pour WordPress</a></li><li><a href='http://css4design.com/wordpress-archives-reloaded-avec-calendarchives' title='WordPress &#8212; archives &quot;Reloaded&quot; avec Calendarchives'>WordPress &#8212; archives &quot;Reloaded&quot; avec Calendarchives</a></li><li><a href='http://css4design.com/danse-avec-les-loops-1-un-theme-wordpress-mis-a-nu' title='Danse avec les loops #1 : un thème WordPress mis à nu'>Danse avec les loops #1 : un thème WordPress mis à nu</a></li></ul>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/ajouter-un-bouton-paypal-faire-un-don-dans-wordpress/feed</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>WordPress &#8212; archives &quot;Reloaded&quot; avec Calendarchives</title>
		<link>http://css4design.com/wordpress-archives-reloaded-avec-calendarchives</link>
		<comments>http://css4design.com/wordpress-archives-reloaded-avec-calendarchives#comments</comments>
		<pubDate>Wed, 13 Aug 2008 13:03:32 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[Le petit journal du web]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Archives]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://www.css4design.com/wordpress-archives-reloaded-avec-calendarchives</guid>
		<description><![CDATA[Si vous n&#8217;aimez pas le widget Calendrier proposé par WordPress pour montrer votre activité mensuelle, vous serez peut-être séduit par cette nouvelle manière de présenter les archives : les années en ordonnée et les mois en abscisse. Actuellement disponible sous forme de code à copier-coller, ne doutons pas que Manu continuera à travailler du chapeau pour ajouter quelques fonctions et à nous offrir son travail sous la forme d&#8217;un widget ;) Articles sur le même sujet Ajouter un bouton Paypal «Faire un don» dans WordPressPlugin WordPress &#8212; CalendarchivesDanse avec les loops #1 : un thème WordPress mis à nuLes widgets [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fwordpress-archives-reloaded-avec-calendarchives">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fwordpress-archives-reloaded-avec-calendarchives&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a&amp;b=2" height="61" width="50" />
			</a>
		</div><p>Si vous n&#8217;aimez pas le widget Calendrier proposé par WordPress pour montrer votre activité mensuelle, vous serez peut-être séduit par cette nouvelle manière de <a href="http://blog.burninghat.net/2008/08/12/wordpress-des-archives-la-faon-de-shauninmancom/">présenter les archives</a> : les années en ordonnée et les mois en abscisse.<span id="more-857"></span></p>

<p>Actuellement disponible sous forme de code à copier-coller, ne doutons pas que <a href="http://blog.burninghat.net/">Manu</a> continuera à travailler du chapeau pour ajouter quelques fonctions et à nous offrir son travail sous la forme d&#8217;un widget ;)</p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css4design.com/ajouter-un-bouton-paypal-faire-un-don-dans-wordpress' title='Ajouter un bouton Paypal «Faire un don» dans WordPress'>Ajouter un bouton Paypal «Faire un don» dans WordPress</a></li><li><a href='http://css4design.com/plugin-wordpress-calendarchives' title='Plugin WordPress &#8212; Calendarchives'>Plugin WordPress &#8212; Calendarchives</a></li><li><a href='http://css4design.com/danse-avec-les-loops-1-un-theme-wordpress-mis-a-nu' title='Danse avec les loops #1 : un thème WordPress mis à nu'>Danse avec les loops #1 : un thème WordPress mis à nu</a></li><li><a href='http://css4design.com/les-widgets-dans-wordpress-25-avec-widgetisator' title='Les widgets dans WordPress 2.5 avec widgétisator ;)'>Les widgets dans WordPress 2.5 avec widgétisator ;)</a></li><li><a href='http://css4design.com/optimiser-et-styler-les-categories-wordpress-avec-les-css' title='Optimiser et styler les catégories WordPress avec les CSS'>Optimiser et styler les catégories WordPress avec les CSS</a></li></ul>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/wordpress-archives-reloaded-avec-calendarchives/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Danse avec les loops #1 : un thème WordPress mis à nu</title>
		<link>http://css4design.com/danse-avec-les-loops-1-un-theme-wordpress-mis-a-nu</link>
		<comments>http://css4design.com/danse-avec-les-loops-1-un-theme-wordpress-mis-a-nu#comments</comments>
		<pubDate>Sat, 19 Jul 2008 17:30:23 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[Conception de site web]]></category>
		<category><![CDATA[Content Management System]]></category>
		<category><![CDATA[Design & Graphisme]]></category>
		<category><![CDATA[Ergonomie & Accessibilité]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Boucle]]></category>
		<category><![CDATA[Loop]]></category>
		<category><![CDATA[Magazine]]></category>
		<category><![CDATA[Onglets]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[Thème]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://www.css4design.com/?p=271</guid>
		<description><![CDATA[Après le thème Agrumz et après avoir mis en place un thème provisoire en attendant, voici SquaryBluevie, le nouveau thème bleu et carré (et un peu vert aussi) pour css4design. Il ne s&#8217;agit pas vraiment d&#8217;un thème destiné à transformer ce blog en magazine, mais plutôt d&#8217;en faire un magazine qui ressemble à un blog, nuance, nuance&#8230; Un blogzine ? Oui, oui, c&#8217;est presque ça ! Comme promis, voici donc le premier volet de la série Danse avec les loops pour montrer ce qu&#8217;il y a sous le capot. Une ligne éditoriale moins linéaire Je ne m&#8217;étendrai pas trop sur [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fdanse-avec-les-loops-1-un-theme-wordpress-mis-a-nu">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fdanse-avec-les-loops-1-un-theme-wordpress-mis-a-nu&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a&amp;b=2" height="61" width="50" />
			</a>
		</div><p><del>Après le thème <em>Agrumz</em> et après avoir mis en place un thème provisoire en attendant, voici <em>SquaryBluevie</em>, le nouveau thème bleu et carré (et un peu vert aussi) pour css4design.</del> Il ne s&#8217;agit pas vraiment d&#8217;un thème destiné à transformer ce blog en magazine, mais plutôt d&#8217;en faire un magazine qui ressemble à un blog, nuance, nuance&#8230; Un <em>blogzine</em> ? Oui, oui, c&#8217;est presque ça ! Comme promis, voici donc le premier volet de la série <em>Danse avec les loops</em> pour montrer ce qu&#8217;il y a sous le capot. <span id="more-271"></span></p>

<h3>Une ligne éditoriale moins linéaire</h3>

<p>Je ne m&#8217;étendrai pas trop sur les interrogations existentielles qui m&#8217;ont poussé à changer le design et la structure de ce blog. La première chose, c&#8217;est que la succession simple des billets dans l&#8217;ordre chronologique inverse ne correspond plus vraiment à mes aspirations et aux différentes rubriques qui composent ce blog.</p>

<p>En effet, si le coeur de la ligne éditoriale est consacré à la création de site web en général en mettant l&#8217;accent sur les problématiques liées à l&#8217;intégration HTML et CSS et à la structuration des contenus, j&#8217;aborde d&#8217;autres sujets comme le Web 2.0, le e-commerce et il m&#8217;arrive de publier des billets d&#8217;humeur sur l&#8217;actualité du web.</p>

<p>Si ces sujets peuvent très bien s&#8217;accommoder d&#8217;une structure de blog classique, j&#8217;avais envie de mieux distinguer les articles de fond des billets plutôt brefs, tout en mettant en avant mes billets d&#8217;humeur. Le problème du blog &laquo;&nbsp;classique&nbsp;&raquo;, c&#8217;est que les billets disparaissent vite de la page d&#8217;accueil et perdent rapidement en visibilité, même si l&#8217;ami américain Google est là pour les faire remonter à la surface.</p>

<p>Il me fallait donc un système pour conserver une certaine unité dans la liste des articles en rapport avec les thèmes principaux abordés sur le blog tout en autorisant la publication de billets brefs et d&#8217;humeur. Un <em>blogzine</em>, en fait ;)</p>

<p>Voici pour les explications éditoriales. Jetons maintenant un oeil sous le capot !</p>

<h3>Hiérarchie des Templates</h3>

<p>Grâce à <a href="http://wordpress.org/">WordPress</a>, il est possible de construire un thème en utilisant uniquement le fichier <code>index.php</code>. Chaque requête &#8212; le fait de cliquer sur une catégorie, une page d&#8217;archive, le titre d&#8217;un billet, un tag, etc. &#8212; crée un contexte de variables qui pointera vers ce fichier.</p>

<p>Si l&#8217;on veut afficher les contenus différemment sur le billet seul, par exemple, deux solutions s&#8217;offrent à nous : les marqueurs conditionnels (<a href="http://codex.wordpress.org/Conditional_Tags">Conditional Tags</a>) comme <code>is_single()</code> ou la création d&#8217;un fichier <code>single.php</code>.</p>

<p>S&#8217;il s&#8217;agit de modifier une largeur de colonne au passage du billet seul, le marqueur conditionnel suffit. En revanche, si les modifications sont plus profondes, le fichier <code>single.php</code> sera sans doute plus adapté sachant que dans la plupart des cas, la solution passe par un mélange des deux techniques.</p>

<p>La première chose à prendre en compte est le nombre de maquettes dont on dispose pour afficher tous les contextes possibles, même si dans la plupart des cas, il n&#8217;est pas nécessaire de mettre en place tous les <em>Templates</em> possibles.</p>

<p>Pour y voir un peu plus clair, voici une table des correspondances entre les marqueurs, les templates et la hiérarchie qui leur est associée (<a href="http://codex.wordpress.org/Template_Hierarchy">Template Hierarchy</a>) :</p>

<p><a href="http://www.css4design.com/wp-content/uploads/2008/07/hierarchie-templates-wordpress.png"><img class="alignnone size-full wp-image-274" title="hierarchie-templates-wordpress" src="http://www.css4design.com/wp-content/uploads/2008/07/hierarchie-templates-wordpress.png" alt="" width="500" height="370" /></a></p>

<p>Pour <strong>SquaryBluevie</strong> par exemple, je voulais tout faire en utilisant uniquement le fichier <code>index.php</code>, mais bien que cela soit possible, le risque est grand de se mélanger les pinceaux entre la multitude des conditions&#8230;</p>

<p>J&#8217;ai donc ajouté à <code>index.php</code>, les fichiers <code>home.php</code>, <code>page.php</code> et <code>single.php</code>. Le reste étant composé de fichiers inclus de manière conditionnelle ou en fonction du <em>Template</em>. C&#8217;est le cas pour <code>header.php</code>, <code>footer.php</code>, <code>tutoriels.php</code>, <code>sidebar0.php</code>, <code>sidebar1.php</code>, <code>sidebar2.php</code>, etc.</p>

<h3>Un découpage en 7 grandes zones</h3>

<h4><span>1</span> L&#8217;en-tête</h4>

<p>Le fichier <code>header.php</code> est composé de deux grandes parties. La première contient les éléments qui apparaissent sur l&#8217;ensemble du blog. C&#8217;est la partie <em>header</em> :</p>

<ul>
    <li>Sommaire en haut à gauche,</li>
    <li><a href="http://www.wikio.fr/blogs/top">Classement Wikio</a> en haut à droite,</li>
    <li>Texte de présentation de l&#8217;auteur,</li>
    <li>Logo,</li>
    <li>Texte de présentation du blog,</li>
    <li>Liste des pages statiques en dessous.</li>
</ul>

<p>La deuxième partie <em>header2</em> est située juste en dessous :</p>

<ul>
    <li>Photo de l&#8217;auteur,</li>
    <li>Icône du flux RSS,</li>
    <li>Texte situé entre les deux.</li>
</ul>

<p>C&#8217;est ce texte qui affichera un contenu différent selon le contexte :</p>

<ul>
    <li>Dans une catégorie (<code>&lt;?php if ( is_category() ) : ?&gt;</code>), j&#8217;affiche la description de la catégorie</li>
    <li>Dans la page affichant l&#8217;article seul (<code>&lt;?php if ( is_single() ) : ?&gt;</code>), j&#8217;affiche une introduction générale pour les articles,</li>
    <li>Ni dans une page d&#8217;article ni dans une page statique ni dans une catégorie (<code>&lt;?php if ( !is_single() &amp;&amp; !is_page() &amp;&amp; !is_category() ) : ?&gt;</code>), j&#8217;affiche le dernier billet dans la rubrique &laquo;&nbsp;Editorial&nbsp;&raquo;.</li>
</ul>

<p>La description du blog est celle que l&#8217;on renseigne habituellement dans <em>Réglages -&gt; Options générales -&gt; Slogan</em> du panneau d&#8217;administration. L&#8217;appel du texte se faisant avec la fonction <code>&lt;?php bloginfo('description'); ?&gt;</code>. Comme il s&#8217;agit &#8212; avec la présentation de l&#8217;auteur &#8212; d&#8217;une zone de widgets, il est possible de remplacer aisément la description du blog par un texte libre (notamment si la description est trop courte) en utilisant un widget texte.</p>

<p>Ceci est possible grâce à la fonction suivante (voir ce billet consacré à la <a href="http://www.css4design.com/les-widgets-dans-wordpress-25-avec-widgetisator">création de zones widget dans WordPress</a>) :
<pre>&lt;?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('header2') ) : ?&gt;
&lt;div&gt;
    &lt;h2&gt;Description du blog&lt;/h2&gt;
    &lt;div&gt;&lt;?php bloginfo('description'); ?&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;?php endif; ?&gt;</pre>
L&#8217;éditorial regroupe tous les billets appartenant à la catégorie&#8230; &laquo;&nbsp;editorial&nbsp;&raquo; ;) <a href="http://codex.wordpress.org/The_Loop">La boucle WordPress</a> utilisée est la suivante (<a href="http://codex.wordpress.org/The_Loop_in_Action">plus d&#8217;informations sur les boucles</a>) :
<pre>&lt;?php $my_query = new WP_Query('category_name=editorial&amp;showposts=1');
while ($my_query-&gt;have_posts()) : $my_query-&gt;the_post();?&gt;
    Votre boucle ici
&lt;?php endwhile; ?&gt;</pre>
<small>Note : le fait d&#8217;utiliser le nom de la catégorie à la place de son <code>id</code>, permettra de faciliter la mise en place du thème : il suffira de créer la catégorie <em>Editorial</em> au lieu de chercher le numéro identifiant et de mettre les mains dans le code.</small></p>

<p>A l&#8217;affichage d&#8217;une catégorie, cet édito est remplacé par la description de la catégorie idoine. Cette description est accessible dans l&#8217;administration via <em>Gérer -&gt; Catégories -&gt; Description</em>. Le code à utiliser dans le Template est <code>&lt;?php echo category_description(); ?&gt;</code>. Enfin, lorsqu&#8217;on affiche l&#8217;article seul, cette description est remplacée par un texte libre (widget texte).</p>

<h4><span>2</span> Billet &laquo;&nbsp;C&#8217;est vite dit !&nbsp;&raquo; (En bref)</h4>

<p>Sous le <em>header</em>, la deuxième zone se compose d&#8217;un billet &laquo;&nbsp;En bref&nbsp;&raquo; (cet intitulé &#8212; comme d&#8217;autres sur le blog &#8212; est modifiable dans le fichier <em>functions.php</em>) surmonté d&#8217;un visuel optionnel géré par les champs personnalisés (<em>Customs fields</em>).</p>

<p>Cette rubrique n&#8217;est ni plus ni moins que la catégorie 1 (<em>uncategorized</em> à l&#8217;origine) dont j&#8217;ai modifié l&#8217;intitulé. L&#8217;avantage est de pouvoir compter sur l&#8217;identifiant présent dès l&#8217;installation du blog, ce qui évite d&#8217;avoir à mettre les mains dans le code pour masquer cette catégorie dans les autres boucles. Par ailleurs, cette catégorie &laquo;&nbsp;originelle&nbsp;&raquo; est cochée par défaut, ce qui permet de gagner du temps lorsqu&#8217;on veut rédiger un billet court ;)</p>

<p>Note : pour afficher une seule rubrique, il est possible de se servir de son nom, mais pour l&#8217;exclure, il semble nécessaire de passer par l&#8217;identifiant numérique (à moins qu&#8217;une option m&#8217;ait échappée).</p>

<p>Voici le code pour cette boucle :
<pre>&lt;?php if(!is_paged()) : ?&gt;
    &lt;?php $my_query = new WP_Query('cat=1&amp;showposts=1');
    while ($my_query-&gt;have_posts()) : $my_query-&gt;the_post();
    $do_not_duplicate = $post-&gt;ID;?&gt;
        Contenu de la boucle
    &lt;?php endwhile; ?&gt;
&lt;?php endif; ?&gt;&lt;!-- end !is_paged --&gt;</pre>
Notez la variable <code>$do_not_duplicate</code> initialisée avec la valeur de l&#8217;identifiant du billet : comme les anciens articles de cette catégorie se retrouvent plus bas dans la première barre latérale, il sera important de l&#8217;exclure de la prochaine boucle.</p>

<p>Pour cela, en plus d&#8217;initialiser la variable <code>$do_not_duplicate</code> dans la première boucle, il faut exclure le billet en question de la deuxième boucle :
<pre>&lt;?php $my_query = new WP_Query('cat=1&amp;showposts=6'); ?&gt;
&lt;?php while ($my_query-&gt;have_posts()) : $my_query-&gt;the_post();
    if( $post-&gt;ID == $do_not_duplicate ) continue; update_post_caches($posts); ?&gt;
        Contenu de la boucle
&lt;?php endwhile; ?&gt;</pre>
Grâce au mot-clé PHP <code>continue</code>, on saute le billet repéré plus haut en passant directement au suivant. Et hop ! Ce billet est censé s&#8217;afficher sur la <em>Home</em> uniquement et la condition <code>!is_paged()</code> permet de s&#8217;assurer que l&#8217;utilisateur n&#8217;a pas cliqué sur les billets plus anciens, auquel cas ce billet &laquo;&nbsp;En bref&nbsp;&raquo; ne s&#8217;affiche pas. Je pense que l&#8217;on pourrait utiliser la nouvelle condition<code> is_front_page()</code> apparue avec WordPress 2.5 pour obtenir le même résultat.</p>

<p>La fonction <code>update_post_caches()</code> est là pour pallier le fait que certains <em>plugins</em> ne fonctionnent pas correctement lorsque plusieurs boucles sont présentes sur la même page. Cette fonction réinitialise le cache des billets pour éviter d&#8217;éventuels problèmes.</p>

<h4><span>3</span> Les articles du blogzine proprement dit</h4>

<p>Cette zone est suivie de la liste des billets publiés au fil de l&#8217;eau sur le blog à l&#8217;exception de l&#8217;édito et des billets &laquo;&nbsp;En bref&nbsp;&raquo;. Toutefois, je voulais que ces deux rubriques puissent apparaitre lorsque les visiteurs cliquent sur les <em>Articles plus anciens</em> car si la redondance est gênante sur la première page, elle l&#8217;est moins sur les autres :
<pre>&lt;?php if(!is_paged()) : ?&gt;
    &lt;?php query_posts("$query_string&amp;cat=-1,-16&amp;showposts=10");
    /* Affichage des articles sauf featured et édito */?&gt;
&lt;?php else : ?&gt;
    &lt;?php query_posts("$query_string&amp;showposts=15"); ?&gt;
&lt;?php endif; ?&gt;
&lt;?php while (have_posts()) : the_post(); ?&gt;
        Contenu de la boucle
&lt;?php endwhile; ?&gt;</pre>
Comme vous pouvez le constater, j&#8217;en ai profité pour afficher un nombre plus important de billets sur les &laquo;&nbsp;pages suivantes&nbsp;&raquo; grâce au paramètre <code>showposts=15</code> histoire de donner à voir plus d&#8217;articles à chaque fois. Celà n&#8217;est pas indispensable ici, mais si vous envisagez de n&#8217;afficher qu&#8217;un seul article complet sur la <em>Home</em>, ça peut-être très utile.</p>

<p>Il ne faut pas oublier le paramètre <code>$query_string</code> qui permet de recréer le contexte de la requête (ici <code>is_paged()</code> ) car la fonction <code>query_posts()</code> est un peu l&#8217;auberge espagnole : seules les variables précisées en paramètres sont disponibles sur votre page.</p>

<h4><span>4</span> Le menu à onglets sur la droite</h4>

<p>Ce pavé inaugure la barre latérale et est en quelque sorte le pivot du blog, la boussole qui sert de point de repère dans ce qui pourrait apparaitre comme une cacophonie de textes :</p>

<ul>
    <li><strong>Catégories</strong> &#8212; le moins mauvais des systèmes pour se repérer dans un blog ;</li>
    <li><strong>Derniers articles publiés</strong> afin que le lecteur ait une vision &laquo;&nbsp;applatie&nbsp;&raquo; des parutions sur le blog. En effet, l&#8217;édito ou le billet &laquo;&nbsp;En bref&nbsp;&raquo; peuvent rester un certain temps avant d&#8217;être remplacés, même si le contenu du blog proprement dit (la quatrième zone) peut évoluer plus rapidement ; à moins que l&#8217;inverse se produise car il est tout à fait possible de publier plusieurs billets courts dans &laquo;&nbsp;En bref&nbsp;&raquo; ou de prendre un coup de sang quotidien avec l&#8217;édito !</li>
    <li><strong>Articles les plus commentés</strong>. Si les derniers commentaires (voir plus bas) permettent aux visiteurs de se faire une idée sur les dernières discussions en cours, la liste des articles les plus commentés permet de faire remonter certains articles anciens qui ont, en leur temps, fais parler d&#8217;eux ;)</li>
    <li><strong>Derniers commentaires</strong> avec le gravatar, l&#8217;URL du commentateur et l&#8217;adresse du billet commenté. Pratique, pour donner au visiteur un aperçu des sujets qui suscitent actuellement le plus d&#8217;intérêt.</li>
    <li><strong>Nuage de tags</strong> pour donner un aperçu des thèmes abordés sur le blog au visiteur de passage (qui représente quand même plus de la moitié des visites).</li>
</ul>

<p>A noter que lorsqu&#8217;on se trouve sur les pages <em>single.php</em> (affichage des billets seuls) et <em>page.php</em> (affichage des pages &laquo;&nbsp;statiques&nbsp;&raquo;), ce menu ne propose que les 3 premiers onglets afin de laisser plus de place pour l&#8217;article. Voici le code :
<pre>&lt;?php if ( !is_single() &amp;&amp; !is_page()) : ?&gt;
    &lt;div id="menu-wide"&gt;
&lt;?php else : ?&gt;
    &lt;div id="menu-narrow"&gt;
&lt;?php endif; ?&gt;</pre></p>

<h4><span>5</span> Tutoriels aléatoires</h4>

<p>Sous le menu à onglets, j&#8217;affiche un article aléatoire parmi ceux qui sont tagués &laquo;&nbsp;tutoriel&nbsp;&raquo;. Ca tombe bien car c&#8217;est un des rares tags que j&#8217;ai employé à bon escient depuis de début ! Ca permet de faire &laquo;&nbsp;remonter&nbsp;&raquo; des billets rédigés il y a plus de deux ans et sur lesquels j&#8217;ai le plus transpiré ;) La boucle est relativement similaire aux autres :
<pre>&lt;?php /* Affichage des tous les billets tagué "tutoriels" */
query_posts('tag=tutoriel&amp;showposts=1&amp;orderby=rand');
while (have_posts()) : the_post(); ?&gt;
    Contenu de votre boucle
&lt;?php endwhile; ?&gt;</pre>
Le nerf de la guerre étant ici, les paramètres <em>tag</em> et <em>orderby</em>. Notez que si l&#8217;on voulait obtenir les billets contenant plusieurs tags il suffirait de préciser : <code>tag=tutoriel+wordpress</code>.</p>

<p>Cette zone peut être précédée ou suivie d&#8217;une zone widgétisable pour placer une éventuelle publicité (actuellement des vidéos virales de unrulymedia) ou tout autre élément à la mode. Une zone est même prévue au-dessus du menu à onglets pour la même chose. Bon, rassurez-vous, une publicité placée au-dessus du menu principal vaut son pesant de cacaouettes : le jour où ça arrive, je vous invite à boire un café sur Lyon :D</p>

<h4><span>6</span> Deux barres latérales pour le prix d&#8217;une !</h4>

<p>C&#8217;est le moment de diviser la barre latérale en deux afin d&#8217;accueillir d&#8217;autres types de contenus. Pour le moment la première <em>sidebar</em> accueille la suite des billets &laquo;&nbsp;En bref&nbsp;&raquo; suivie d&#8217;une petite publicité virale (oui, j&#8217;essaie de trouver des alternative à Google Adsense&#8230; pas si facile non plus ;) )</p>

<p>La deuxième barre latérale est destinée à accueillir des liens externes comme les liens sponsorisés (saymal, mais saybon quand même :D ), les flux RSS externes, etc.</p>

<p>A noter que sous cette double <em>sidebar</em>, il est possible d&#8217;afficher du contenu à l&#8217;aide d&#8217;une zone widgétisée sur la largeur des deux colonnes.</p>

<h4><span>7</span> Le footer</h4>

<p>Ce footer est lui-même divisé en deux : un <em>big footer</em> (inactif pour l&#8217;instant) et le <em>footer</em> proprement dit qui affiche quelques informations classiques comme les droits réservés, l&#8217;adresse des différents flux RSS, le lien vers le formulaire de contact, etc.</p>

<h3>Les widgets</h3>

<p>Ce thème est truffé de <a href="http://www.css4design.com/tutoriel-wordpress-2-2-la-sidebar-a-la-loupe-comprendre-les-widgets-et-declarer-une-war">zones widgets ready</a> pour permettre une certaine souplesse dans l&#8217;administration du blog en minimisant les allers-retours dans le code. Pour information, <em>SquaryBluevie </em>ne compte pas moins de de 19 zones de widgets, certaines actives et d&#8217;autres pouvant être activées sur un claquement de souris.</p>

<p>Voici la liste des différentes zones de widget et leur utilisation actuelle ou prochaine :</p>

<ol>
    <li><strong>header1 </strong>&#8211; présentation de l&#8217;auteur (widget Texte),</li>
    <li><strong>header2 </strong>&#8211; présentation du blog (inactive pour l&#8217;instant),</li>
    <li><strong>article </strong>&#8211; texte de remplacement de l&#8217;édito et de la description de la catégorie quand on est sur l&#8217;article seul,</li>
    <li><strong>tab1</strong> &#8212; contenu du premier onglet dans le pavé de droite. Actuellement les catégories,</li>
    <li><strong>tab2</strong> &#8212; derniers billets publiés,</li>
    <li><strong>tab3</strong> &#8212; articles les plus commentés par les visiteurs,</li>
    <li><strong>tab4</strong> &#8212; derniers commentaires des visiteurs</li>
    <li><strong>tab5</strong> &#8212; listes des tags les plus utilisés</li>
    <li><strong>sidebar-top</strong> &#8212; zone située au-dessus du menu à onglets (inactive pour l&#8217;instant),</li>
    <li><strong>sidebar-middle</strong> &#8212; zone située sous le menu à onglets (Actuellement une vidéo publicitaire),</li>
    <li><strong>sidebar-middle2</strong> &#8212; zone située sous le tutoriel aléatoire (inactive pour l&#8217;instant),</li>
    <li><strong>sidebars-bottom</strong> &#8211;zone située sous les deux  colonnes latérales,</li>
    <li><strong>sidebar1-top</strong> &#8212; zone placée au-dessus de la première barre latérale étroite,</li>
    <li><strong>sidebar1-bottom</strong> &#8212; zone placée en dessous,</li>
    <li><strong>sidebar2</strong> &#8212; l&#8217;ensemble de la deuxième barre latérale étroite est gérée par cette zone. Principalement pour des liens externes et/ou publicitaires (flux RSS, liens sponsorisés, <em>blogroll</em>, etc.),</li>
    <li><strong>bigfooter </strong>&#8211; si le besoin s&#8217;en fait sentir, une zone <em>big footer</em> est diponible sur toute la largeur de la page en 2, 3, 4 ou 5 colonnes en fonction des besoins. (inactive pour l&#8217;instant),</li>
    <li><strong>footer </strong>&#8211; zone disponible au début du <em>footer</em> (inactive pour l&#8217;instant),</li>
    <li><strong>adz</strong> &#8212; affichage des publicités <em>AdSense</em> à la fin du billet seul et sous le billet &laquo;&nbsp;En bref&nbsp;&raquo; présent sur la Home.</li>
    <li><strong>sidebar-single </strong>&#8211; permet d&#8217;afficher des élément sous le menu à onglets lorsqu&#8217;on lit un billet seul.</li>
</ol>

<h3>Grille de mise en page, feuilles de styles CSS et Javascript</h3>

<p>Je ne m&#8217;étendrai pas trop sur ces questions qui feront l&#8217;objet d&#8217;un autre article : ce design est provisoire (ce qui n&#8217;est pas le cas de cet article) et je ne suis pas sûr de vouloir garder la même approche. Mais pour ceux qui sont curieux et qui n&#8217;ont pas envie de regarder le code source, voici quelques informations.</p>

<p>Pour ce thème, j&#8217;ai utilisé le <a href="http://www.css4design.com/frameworks-css-reset-css-design-from-scratch">framework CSS</a> <a href="http://code.google.com/p/blueprintcss/">Blueprint</a> en redéfinissant totalement la grille horizontale proposée par défaut en utilisant l&#8217;excellent <a href="http://kematzy.com/blueprint-generator/">Blueprint Generator</a> pour générer automatiquement le fichier <em>grids.css</em> : il suffit de préciser quelques informations. J&#8217;ai opté pour une grille en 14 colonnes de 52 pixels chacune, séparées par une gouttière de 18 pixels, pour une largeur totale de 962 pixels.</p>

<p>L&#8217;avantage du framework Blueprint est de pouvoir tester rapidement plusieurs mises en page à partir de la même grille. La prise en main est relativement facile si l&#8217;on possède des bonnes notions de CSS et si l&#8217;on si sait à quel moment il faut <a href="http://www.css4design.com/retablir-le-flux-apres-des-elements-flottants-en-css-sans-balise-html-supplementaire">rétablir le flux après les flottants</a> : lorsqu&#8217;on détermine une largeur à l&#8217;aide de Blueprint, on utilise un <em>float: left</em> en même temps !</p>

<p>J&#8217;ai utilisé également le<a href="http://code.google.com/p/ie7-js/"> script ie7.js</a> de <a href="http://dean.edwards.name/">Dean Edwards</a> pour faire en sorte que Internet Explorer 6 se comporte comme IE7. Je vous invite à lire l&#8217;article <a href="http://www.css4design.com/quelques-notes-sur-la-bibliotheque-javascript-ie7-de-dean-edwards">Quelques notes sur la bibliothèque Javascript IE7</a> qui vous permettra d&#8217;en savoir plus sur les comportements ajoutés à Internet Explorer pour le rendre plus <em>friendly</em> ;)</p>

<h3>Conclusion</h3>

<p>Dans ce billet, je n&#8217;ai pas abordé les aspects graphiques : comme je l&#8217;ai <a href="http://www.css4design.com/nouveau-design-en-place-plus-bleu-plus-carre-plus-centre">déjà évoqué</a>, ce thème est pour moi un saut dans l&#8217;inconnu car je n&#8217;ai pas l&#8217;habitude de travailler le bleu, les blocs carrés ou encore les designs symétriques ! Tout celà donne un aspect institutionnel qui n&#8217;était pas recherché au départ mais qui peut faire son petit effet ;)</p>

<p>Rassurez-vous toutefois, mon objectif n&#8217;était pas d&#8217;obtenir des <em>backlinks</em> d&#8217;un site se terminant par <em>.gouv</em>, mais simplement de mieux structurer le blog et d&#8217;utiliser une palette de couleur tendant vers la monochromie (deux couleurs froides) afin que le regard du lecteur ne se disperse pas trop : plus les contenus sont nombreux et variés et plus la sobriété est importante.</p>

<p>Par ailleurs, le graphisme de ce blog est destiné à évoluer régulièrement pendant quelques temps, le temps de trouver un rythme de croisière entre l&#8217;édito, les brèves, les articles de fond, les tutoriels, etc&#8230;</p>

<p><em>Stay tuned and mind the gap!</em></p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css4design.com/wordpress-gerer-les-images-avec-les-champs-personnalises-customs-fields' title='WordPress &#8212; Gérer les images avec les champs personnalisés (Customs fields)'>WordPress &#8212; Gérer les images avec les champs personnalisés (Customs fields)</a></li><li><a href='http://css4design.com/wordpress-26-mes-news-carburent-a-press-this' title='WordPress 2.6 &#8212; Mes news carburent à &quot;Press This&quot; (chaine inside)'>WordPress 2.6 &#8212; Mes news carburent à &quot;Press This&quot; (chaine inside)</a></li><li><a href='http://css4design.com/les-widgets-dans-wordpress-25-avec-widgetisator' title='Les widgets dans WordPress 2.5 avec widgétisator ;)'>Les widgets dans WordPress 2.5 avec widgétisator ;)</a></li><li><a href='http://css4design.com/wordpress-26-un-nouveau-tag-conditionnel-avec-has_tag' title='WordPress 2.6 &#8212; un nouveau &quot;tag&quot; conditionnel avec has_tag()'>WordPress 2.6 &#8212; un nouveau &quot;tag&quot; conditionnel avec has_tag()</a></li><li><a href='http://css4design.com/quelques-notes-sur-un-theme-magazine-de-a-a-z-e-comme-epure' title='Quelques notes sur un thème magazine de A à Z &#8212; E comme épure'>Quelques notes sur un thème magazine de A à Z &#8212; E comme épure</a></li></ul>
 <p><a href="http://css4design.com/?flattrss_redirect&amp;id=271&amp;md5=6e5619743e48633dcaa7d93ca32f8145" title="Flattr" target="_blank"><img src="http://css4design.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://css4design.com/danse-avec-les-loops-1-un-theme-wordpress-mis-a-nu/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Les widgets dans WordPress 2.5 avec widgétisator ;)</title>
		<link>http://css4design.com/les-widgets-dans-wordpress-25-avec-widgetisator</link>
		<comments>http://css4design.com/les-widgets-dans-wordpress-25-avec-widgetisator#comments</comments>
		<pubDate>Thu, 20 Mar 2008 22:29:38 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[Content Management System]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Sidebar]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[Thème]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://www.css4design.com/les-widgets-dans-wordpress-25-avec-widgetisator</guid>
		<description><![CDATA[La mise-à-jour vers WordPress 2.5 ne se limite pas seulement à des améliorations ergonomiques et cosmétiques au niveau de l&#8217;interface d&#8217;administration. Prenons les widgets : la page elle-même est profondément remaniée, et toute la partie destinée au choix du nombre de widgets (texte, RSS, catégorie, etc.) disparait, puisque avec cette version, le nombre de certains widgets n&#8217;est plus limité. Et comme vous êtes sympa, je vous donne les éléments nécessaires pour nommer et personnaliser vos zones widgétisables dans votre template WordPress. L&#8217;est passé où, le glissé-déposé ? Conséquence directe sur l&#8217;interface, il n&#8217;est plus possible d&#8217;utiliser le glissé-déposé des widgets [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fles-widgets-dans-wordpress-25-avec-widgetisator">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fles-widgets-dans-wordpress-25-avec-widgetisator&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a&amp;b=2" height="61" width="50" />
			</a>
		</div><p>La mise-à-jour vers WordPress 2.5 ne se limite pas seulement à des améliorations ergonomiques et cosmétiques au niveau de l&#8217;interface d&#8217;administration. Prenons les widgets : la page elle-même est profondément remaniée, et toute la partie destinée au choix du nombre de widgets (texte, RSS, catégorie, etc.) disparait, puisque avec cette version, le nombre de certains widgets n&#8217;est plus limité. Et comme vous êtes sympa, je vous donne les éléments nécessaires pour nommer et personnaliser vos zones widgétisables dans votre template WordPress.<span id="more-214"></span></p>

<h3>L&#8217;est passé où, le glissé-déposé ?</h3>

<p>Conséquence directe sur l&#8217;interface, il n&#8217;est plus possible d&#8217;utiliser le glissé-déposé des widgets vers les différentes &laquo;&nbsp;sidebars&nbsp;&raquo;. En effet, cette fonction n&#8217;était déjà pas très pratique lorsqu&#8217;on déclarait quatre zones widgétisables (improprement appelées &laquo;&nbsp;sidebars&nbsp;&raquo;), alors vous imaginez le dawa avec plus  ;)</p>

<p>A la place, nous avons une interface robuste avec à gauche, les différents widgets disponibles, et à droite, les zones widgétisables et les widgets associés, avec les options disponibles pour chacun d&#8217;eux.</p>

<p>A noter qu&#8217;il est préférable de bien nommer vos zones widgétisables pour vous y retrouver car le choix de ces dernières s&#8217;effectue désormais au dans un menu <em>select</em>.</p>

<h3>Modifier l&#8217;intitulé des zones widgétisables</h3>

<p>Dans un précédent article sur <a href="http://www.css4design.com/tutoriel-wordpress-2-2-la-sidebar-a-la-loupe-comprendre-les-widgets-et-declarer-une-war">les widgets dans WordPress</a>, je n&#8217;étais pas parvenu à modifier l&#8217;intitulé des zones widgétisables, cette fois, c&#8217;est réglé : à la place de <em>sidebar1</em>, <em>sidebar2</em>, etc. voici le code à mettre dans le fichier <em>functions.php</em> pour donner un nom explicite à chaque zone, avec en prime, la possibilité de spécifier pour chacune les balises HTML enveloppantes qui vont bien :</p>

<h4>Widgétisator</h4>

<p><pre>
&lt;?php
// <strong>A mettre dans le fichier functions.php de votre thème</strong>
if ( function_exists('register_sidebar') )
register_sidebar(array('name'=&gt;'header',
'before_widget' =&gt; '&lt;p id=&quot;%1$s&quot; class=&quot;widget-header %2$s&quot;&gt;',
'after_widget' =&gt; '&lt;/p&gt;',
'before_title' =&gt; '&lt;h3 class=&quot;widgettitle&quot;&gt;',
'after_title' =&gt; '&lt;/h3&gt;',
));
register_sidebar(array('name'=&gt;'sidebar',
'before_widget' =&gt; '&lt;li id=&quot;%1$s&quot; class=&quot;widget-sidebar %2$s&quot;&gt;',
'after_widget' =&gt; '&lt;/li&gt;',
'before_title' =&gt; '&lt;h3 class=&quot;widgettitle&quot;&gt;',
'after_title' =&gt; '&lt;/h3&gt;',
));
register_sidebar(array('name'=&gt;'content',
'before_widget' =&gt; '&lt;div id=&quot;%1$s&quot; class=&quot;widget-content %2$s&quot;&gt;',
'after_widget' =&gt; '&lt;/div&gt;',
'before_title' =&gt; '&lt;h3 class=&quot;widgettitle&quot;&gt;',
'after_title' =&gt; '&lt;/h3&gt;',
));
register_sidebar(array('name'=&gt;'footer',
'before_widget' =&gt; '&lt;div id=&quot;%1$s&quot; class=&quot;widget-footer %2$s&quot;&gt;',
'after_widget' =&gt; '&lt;/div&gt;',
'before_title' =&gt; '&lt;h3 class=&quot;widgettitle&quot;&gt;',
'after_title' =&gt; '&lt;/h3&gt;',
));
?&gt;
</pre></p>

<p>L&#8217;idée est de déclarer individuellement chaque zone, de manière à controler :</p>

<ul>
    <li>le nom de la zone (<em>header</em>, <em>sidebar</em>, <em>content</em>, <em>footer</em>), </li>
    <li>la balise html servant à encadrer le code fournit par le widget avec une class CSS spécifique (<em>widget-header</em>, <em>widget-sidebar</em>, <em>widget-content</em>, <em>widget-footer</em>), </li>
    <li>la balise de titre avec sa classe CSS spécifique (<em>widgettitle</em>). </li>
</ul>

<p>Sinon, il reste toujours la possibilité de déclarer plusieurs zones d&#8217;un seul coup avec le code :</p>

<p><pre>
&lt;?php
if ( function_exists('register_sidebar') )
    $widgetWrap = array(
        'before_widget' =&gt; '&lt;div id=&quot;%1$s&quot; class=&quot;widget %2$s&quot;&gt;',
        'after_widget' =&gt; '&lt;/div&gt;',
        'before_title' =&gt; '&lt;h2 class=&quot;widgettitle&quot;&gt;',
        'after_title' =&gt; '&lt;/h2&gt;',
    );
    register_sidebars(4, $widgetWrap);
?&gt;
</pre></p>

<p>Dans les deux cas, pour terminer, il est nécessaire de définir votre zone widgétisable dans votre template à l&#8217;aide des lignes suivantes :</p>

<p><pre>
&lt;?php
// <strong>A mettre dans votre template là où vous voulez déclarer une WAR</strong>
if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('header') ) : ?&gt;</p>

<p>/*
Placez ici le code qui doit s'afficher si la zone
n'est pas remplie avec des widgets -- facultatif
*/</p>

<p>&lt;?php endif; ?&gt;
</pre></p>

<h3>En bref</h3>

<p>Vous l&#8217;aurez compris, je suis conquis par cette nouvelle version de WordPress, et vous n&#8217;avez pas fini d&#8217;en entendre parler ;) Pour avoir d&#8217;autres informations sur cette version, n&#8217;h&#233;sitez pas &#224; faire un tour sur <a href="http://www.wordpress-fr.net/dans-les-coulisses-de-wordpress-25-sneak-peek">WordPress francophone</a>, chez <a href="http://blog.nicolargo.com/2008/03/adapter-votre-theme-pour-wordpress-25-1.html">nicolargo</a> ou encore chez <a href="http://www.herewithme.fr/les-nouveauts-dveloppeurs-de-wordpress-25">Here With Me</a>.</p>

<p><em>Stay tuned!</em></p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css4design.com/danse-avec-les-loops-1-un-theme-wordpress-mis-a-nu' title='Danse avec les loops #1 : un thème WordPress mis à nu'>Danse avec les loops #1 : un thème WordPress mis à nu</a></li><li><a href='http://css4design.com/tutoriel-wordpress-2-2-la-sidebar-a-la-loupe-comprendre-les-widgets-et-declarer-une-war' title='Tutoriel WordPress : la sidebar à la loupe, comprendre les widgets et déclarer une &quot;WAR&quot;'>Tutoriel WordPress : la sidebar à la loupe, comprendre les widgets et déclarer une &quot;WAR&quot;</a></li><li><a href='http://css4design.com/wordpress-a-z-allons-y' title='WordPress de A à Z &#8212; A comme Allons-y ! (on s&#8217;organise)'>WordPress de A à Z &#8212; A comme Allons-y ! (on s&#8217;organise)</a></li><li><a href='http://css4design.com/creer-son-site-web-avec-wordpress-de-a-a-z-avec-le-codex' title='Créer son site web avec WordPress de A à Z&#8230; avec le Codex'>Créer son site web avec WordPress de A à Z&#8230; avec le Codex</a></li><li><a href='http://css4design.com/quel-tarif-pour-un-theme-wordpress' title='Quel tarif pour un thème WordPress ?'>Quel tarif pour un thème WordPress ?</a></li></ul>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/les-widgets-dans-wordpress-25-avec-widgetisator/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>rollSense : Google Adsense du contenu ou révolution dans l&#039;échange de lien ?</title>
		<link>http://css4design.com/rollsense-google-adsense-du-contenu-ou-revolution-dans-lechange-de-lien</link>
		<comments>http://css4design.com/rollsense-google-adsense-du-contenu-ou-revolution-dans-lechange-de-lien#comments</comments>
		<pubDate>Wed, 17 Oct 2007 10:16:08 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[AdSense]]></category>
		<category><![CDATA[Blogosphère]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Notorious Blog]]></category>
		<category><![CDATA[publicité]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://www.css4design.com/index.php/2007/10/17/136-rollsense-google-adsense-du-contenu-ou-revolution-dans-lechange-de-lien</guid>
		<description><![CDATA[C&#8217;est grâce à Alexis que j&#8217;ai découvert rollSense. Je m&#8217;attendais à un Criteo de plus, mais passé le stade de la découverte, rollSense me parait plus attractif, plus fun à utiliser. Alors que Criteo propose à vos visiteurs des sites qui ont un rapport avec le vôtre, rollSense recommande à vos lecteurs des articles en relation avec le thème de vos pages. Une fois le widget installé, chaque fois qu&#8217;un lecteur cliquera sur un de vos billets pour le lire, rollSense fournira ses recommandations. Il est possible de sélectionner soi-même les sources d&#8217;information dans lesquelles le service puisera pour afficher [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Frollsense-google-adsense-du-contenu-ou-revolution-dans-lechange-de-lien">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Frollsense-google-adsense-du-contenu-ou-revolution-dans-lechange-de-lien&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a&amp;b=2" height="61" width="50" />
			</a>
		</div><p>C&#8217;est grâce à <a href="http://blog.alcd.be/165-mise-a-jour-de-ma-rollsense">Alexis</a> que j&#8217;ai découvert <a href="http://www.rollsense.com">rollSense</a>. Je m&#8217;attendais à un <a href="http://www.criteo.com">Criteo</a> de plus, mais passé le stade de la découverte,  <em>rollSense</em> me parait plus attractif, plus <em>fun</em> à utiliser. Alors que <em>Criteo</em> propose à vos visiteurs des sites qui ont un rapport avec le vôtre, <em>rollSense</em> recommande à vos lecteurs des articles en relation avec le thème de vos pages. Une fois le <em>widget</em> installé, chaque fois qu&#8217;un lecteur cliquera sur un de vos billets pour le lire, rollSense fournira ses recommandations. Il est possible de sélectionner soi-même les sources d&#8217;information dans lesquelles le service puisera pour afficher ses résultats et ne mettre que son site ou son réseau de sites. Et pourquoi pas, créer un réseau de liens réciproques comme <a href="http://www.google.fr/">Google</a> les aime tant ;)<span id="more-141"></span></p>

<h6>Cerise sur le gâteau, des liens sponsorisés et ciblés (tiens ça ne vous rappelle rien ?) fournis par <a href="http://searchmarketing.yahoo.com/fr_FR/">Yahoo! Search Marketing</a>  peuvent contribuer à la monétisation de votre blog, ce qui ne peut pas lui faire de mal :)</h6>

<p><a href="/wp-content/uploads/2007/10/rollsense.jpg" title="rollsense"><img src="/wp-content/uploads/2007/10/rollsense.jpg" alt="rollsense" width="450" /></a></p>

<h3>rollSense en bref</h3>

<ul>
    <li>Vous décidez d&#8217;où viennent les articles recommandés,</li>
    <li>Les articles recommandés le sont par rapport au billet que parcoure votre lecteur,</li>
    <li>Facile à activer, <em>rollSense</em> ne demande que l&#8217;adresse de votre blog et votre <em>blogroll</em> ou <acronym title="Outline Processor Markup Language">OPML</acronym>,</li>
    <li>Installation simple sur le blog, vous copiez et collez un bout de code HTML,</li>
    <li>Vous pourrez suivre les visites en provenance d&#8217;autres sites, comme celles générées vers votre <em>blogroll</em>,</li>
    <li><em>rollSense</em> peut aussi être utilisé pour simplement afficher les billets les plus récents de votre <em>blogroll</em>, éventuellement filtrés par vos mots clés</li>
</ul>

<h3>Allez, hop ! je m&#8217;inscris</h3>

<p>5 champs à remplir, plus la case concernant les conditions d&#8217;utilisation à cocher et je reçois le mail d&#8217;activation qui me renvoie curieusement sur une page m&#8217;indiquant que mon &laquo;&nbsp;canal&nbsp;&raquo; n&#8217;est pas valide&#8230; Demander le minimum d&#8217;information à l&#8217;inscription c&#8217;est bien, mais ils auraient pu demander l&#8217;adresse du flux dès le départ et nous faire économiser un clic ! Je clique néanmoins sur &laquo;&nbsp;OK&nbsp;&raquo; et j&#8217;arrive sur la page pour initialiser mon canal <em>rollSense</em>.</p>

<p>Je regrette (comme souvent) le choix restreint des intitulés de rubriques pour classer mon blog : je n&#8217;ai rien trouvé de mieux que &laquo;&nbsp;Ordinateurs &amp; Internet&nbsp;&raquo;&#8230; triste, non ?</p>

<h3>Monétiser son blog ?</h3>

<p>Voilà, c&#8217;est fini ! mon inscription est en attente d&#8217;approbation. En attendant, je définis mes options de paiement qui peut s&#8217;effectuer par chèque (à partir de 100€ d&#8217;avoir) ou par <a href="http://www.paypal.com">PayPal</a> (à partir de 60€). Hum&#8230; si les montants ressemblent à ceux de  <a href="http://www.google.com/adsense">Google Adsense</a>,  je pourrais offrir une figurine de <em>Grendizer</em> à mon fils de 4 ans pour ses 7 ans ;) Je vais donc attendre un peu avant de donner mes informations personnelles.</p>

<p>Vous pouvez admirer ensuite votre <em>widget</em> personnalisable &#8211; dont la langue utilisée &#8211; en  largeur (de 150px à 450px) et en couleur à l&#8217;image de ce qui se fait habituellement. Pour un meilleur contrôle, je vous conseille quand même de modifier les valeurs directement dans le code, c&#8217;est pas sorcier ;)</p>

<h4>Yahoo! Search Marketing ?</h4>

<p>Je ne sais pas si vous êtes comme moi, mais j&#8217;avais presque fini par oublier qu&#8217;il y avait une vie en dehors de <em>Google</em> dans le domaine de la publicité contextuelle d&#8217;envergure. Je me dit que c&#8217;est assez bien vu de la part de <a href="http://www.yahoo.fr">Yahoo!</a> de <strong>s&#8217;associer avec <em>rollSense</em> pour tenter de tailler des croupières à <em>Google</em> sur son terrain de jeux</strong> par le biais d&#8217;un <em>widget</em> qui a tout pour plaire.</p>

<h3>Je suis emballé</h3>

<p>Pour commencer, je me servirai certainement de <em>rollSense</em> pour faire des liens croisés entre les articles publiés sur <a href="http://www.notoriousblog.fr" title="Maintenant, vous êtes sur scène !">Notorious Blog</a> et celui-ci, en indiquant pour chacun d&#8217;eux le flux de l&#8217;autre. Sinon, il est possible de faire les choses en grand en ajoutant n&#8217;importe quel fichier <acronym title="Outline Processor Markup Language">OPML</acronym> : pourquoi pas la liste de vos <a href="http://blogmarks.net">blogmarks</a> favoris ?</p>

<p>Installé par simple curiosité au début, ce widget vient déjà de prendre sa place dans la page des billets et a même remplacé la liste des derniers billets publiés. Le fait de spécifier soi-même les flux pris en compte &#8211; et uniquement ceux-ci &#8211; est un plus indéniable qui permet d&#8217;<strong>envisager autrement la notion d&#8217;échange de liens, un peu <em>has been</em>, il faut bien le dire, malgré son efficacité redoutable</strong> ;)</p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css4design.com/7-etapes-pour-demander-une-prime-de-risque-en-qualite-de-trafiquant-de-pagerank' title='7 étapes pour demander une prime de risque en qualité de trafiquant de PageRank !'>7 étapes pour demander une prime de risque en qualité de trafiquant de PageRank !</a></li><li><a href='http://css4design.com/le-pret-a-bloguer-bride-t-il-la-creativite' title='Le prêt-à-bloguer bride-t-il la créativité ?'>Le prêt-à-bloguer bride-t-il la créativité ?</a></li><li><a href='http://css4design.com/sites-de-contenus-vs-sites-commerciaux' title='Sites de contenus vs sites commerciaux ?'>Sites de contenus vs sites commerciaux ?</a></li><li><a href='http://css4design.com/interesses-par-la-monetisation-de-votre-contenu-jettez-un-oeil-sur-google-adsense' title='Intéressés par la monétisation de votre contenu ? Jettez un oeil sur Google AdSense'>Intéressés par la monétisation de votre contenu ? Jettez un oeil sur Google AdSense</a></li><li><a href='http://css4design.com/journalistes-vs-blogueurs-gladiators-inside' title='Journalistes vs Blogueurs (Gladiators inside)'>Journalistes vs Blogueurs (Gladiators inside)</a></li></ul>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/rollsense-google-adsense-du-contenu-ou-revolution-dans-lechange-de-lien/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Optimiser et styler les catégories WordPress avec les CSS</title>
		<link>http://css4design.com/optimiser-et-styler-les-categories-wordpress-avec-les-css</link>
		<comments>http://css4design.com/optimiser-et-styler-les-categories-wordpress-avec-les-css#comments</comments>
		<pubDate>Mon, 15 Oct 2007 06:08:32 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[Content Management System]]></category>
		<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Ergonomie]]></category>
		<category><![CDATA[Navigation]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://www.css4design.com/index.php/2007/10/15/129-optimiser-et-styler-les-categories-wordpress-avec-les-css</guid>
		<description><![CDATA[Suite à la migration de mon blog, j&#8217;en ai profité pour réorganiser les catégories en utilisant les sous-catégories qui me semblent un excellent moyen pour structurer l&#8217;information sur un blog. Curieusement, j&#8217;ai remarqué que les catégories sont souvent traitées par-dessus la jambe : soit il s&#8217;agit d&#8217;une longue liste tellement exhaustive qu&#8217;on ne sait plus de quoi parle le blog, soit les catégories sont placées à un endroit peu visible. Le pire étant évidemment le cumul des deux, ce qui n&#8217;est pas si rare&#8230; Optimiser les catégories La première chose à considérer, c&#8217;est de limiter le nombre de rubriques principales [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Foptimiser-et-styler-les-categories-wordpress-avec-les-css">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Foptimiser-et-styler-les-categories-wordpress-avec-les-css&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a&amp;b=2" height="61" width="50" />
			</a>
		</div><p><img src="http://www.css4design.com/wp-content/uploads/2007/10/affichage-categorie.png" class="il" alt="Affichage catégorie" />Suite à la migration de mon blog, j&#8217;en ai profité pour réorganiser les catégories en utilisant les sous-catégories qui me semblent un excellent moyen pour structurer l&#8217;information sur un blog. Curieusement, j&#8217;ai remarqué que les catégories sont souvent traitées par-dessus la jambe : soit il s&#8217;agit d&#8217;une longue liste tellement exhaustive qu&#8217;on ne sait plus de quoi parle le blog, soit les catégories sont placées à un endroit peu visible. Le pire étant évidemment le cumul des deux, ce qui n&#8217;est pas si rare&#8230;<span id="more-139"></span></p>

<h3>Optimiser les catégories</h3>

<p>La première chose à considérer, c&#8217;est de limiter le nombre de rubriques principales : une dizaine me semble un maximum pour permettre au visiteur de se faire rapidement une idée sur le contenu du blog. Maintenant, voyons concrètement comment afficher ces catégories et sous-catégories avec les CSS et les classes mises à notre disposition dans WordPress.</p>

<p>Pour commencer, j&#8217;ai créé la catégorie Développement web qui servira de catégorie parente pour les sous-catégories <em>design-graphisme</em>, <em>ergonomie-accessibilité</em>, <em>javascript-php</em> et bien sûr <em>xhtml-css</em>.</p>

<p>Pour afficher ces catégories, je me suis contenté d&#8217;<a href="http://www.css4design.com/index.php/2007/05/29/94-tutoriel-wordpress-2-2-la-sidebar-a-la-loupe-comprendre-les-widgets-et-declarer-une-war">utiliser le <em>widget</em></a> catégorie qui permet de modifier le nom de la rubrique, d&#8217;afficher la liste avec un menu déroulant, d&#8217;afficher la hiérarchie et enfin de préciser le nombre de billets présents dans une catégorie ou une sous-catégorie.</p>

<h6>Les options disponibles dans le widget catégorie de WordPress devraient suffir à la majorité des utilisateurs !</h6>

<p><a href="http://www.css4design.com/wp-content/uploads/2007/10/widget-categorie-wordpress.png"><img src="http://www.css4design.com/wp-content/uploads/2007/10/widget-categorie-wordpress.png" /></a></p>

<h3>Styler les catégories avec les CSS</h3>

<p>Reste à styler ce menu avec les CSS. Pour celà, WordPress met à notre disposition une classe <em>.current-cat</em> lorsqu&#8217;une catégorie est sélectionnée et <em>.current-cat-parent</em> lorsqu&#8217;ils s&#8217;agit d&#8217;une catégorie parente. Notez q&#8217;une classe <em>.children</em> est associée aux sous-catégories, ce qui est bien utile ;)</p>

<p>Pour l&#8217;instant, je me suis contenté de mettre en gras les éléments sélectionnés par l&#8217;utilisateur en attendant mieux. Dans ce cas, il faut prendre garde à la cascade, car la règle :
<pre>
.current-cat-parent {
    font-weight: bold;
}</pre>
agit également sur tous les items qui suivent, y compris ceux dont la classe est <em>.current-cat</em>. Pour y remédier, il ne faut pas oublier de remettre les éléments <em>.children</em> à leur valeur par défaut avec la règle :
<pre>
.children {
    font-weight: normal;
}</pre>
et ensuite de spécifier pour <em>.current-cat</em> la règle :
<pre>
.children .current-cat {
    font-weight: bold;
}</pre>
de manière à obtenir, lorsqu&#8217;on clique sur une sous-catégorie, du <em>bold</em> pour la catégorie mère et/ou  la sous-catégorie en question uniquement.</p>

<p>N&#8217;oublions pas non plus de préciser comment doivent se comporter les catégories cliquées qui ne sont pas des catégories parentes :
<pre>
.current-cat {
    font-weight: bold;
}</pre>
En l&#8217;occurrence, j&#8217;ai mis le même style partout, mais rien ne vous empêche de faire une distinction.</p>

<h6>Voici l&#8217;exemple des catégories avec ci-contre, la sortie dans <a href="www.mozilla-europe.org/fr/products/firefox/">Firefox</a> et plus bas, le code html vu par <a href="https://addons.mozilla.org/en-US/firefox/addon/1843?lang=fr">Firebug</a>. Admirez donc les différentes classes disponibles pour vos CSS ;)</h6>

<p><a href="http://www.css4design.com/optimiser-et-styler-les-categories-wordpress-avec-les-css/avec-spongestats-3-0-mes-stats-ont-la-patate" rel="attachment wp-att-131" title="Catégorie courante"><img src="http://www.css4design.com/wp-content/uploads/2007/10/categorie-courante.png" alt="Catégorie courante" /></a></p>

<h3>Quelques notes au sujet des catégories pour conclure</h3>

<p>Le plus fastidieux quand on se lance dans la réorganisation des catégories est de déterminer le degré de granularité des informations qui doivent apparaitre. J&#8217;ai choisi des intitulés de rubriques parentes relativement génériques pour offrir une certaine souplesse à l&#8217;usage.</p>

<p>En revanche,  pour les sous-catégories, j&#8217;ai essayé d&#8217;être le plus précis possible sans pour autant multiplier le nombre d&#8217;éléments. Si dans mon cas, je peux facilement regrouper Javascript et php, il en ira autrement pour un blog spécialisé dans la programmation : il sera sans doute judicieux de faire une distinction entre les langages côtés serveur et ceux côté client ;)</p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css4design.com/avec-spongestats-3-0-mes-stats-ont-la-patate' title='Avec Spongestats 3.0, mes stats ont la patate !'>Avec Spongestats 3.0, mes stats ont la patate !</a></li><li><a href='http://css4design.com/le-petit-journal-du-web-les-fruits-de-la-veille-ont-garde-leur-fraicheur' title='Le petit journal du web &#8212; Les fruits de la veille ont gardé toute leur fraicheur'>Le petit journal du web &#8212; Les fruits de la veille ont gardé toute leur fraicheur</a></li><li><a href='http://css4design.com/le-petit-journal-du-web-novembre-2011' title='Le petit journal du web &#8212; WordPress, développement web, etc.'>Le petit journal du web &#8212; WordPress, développement web, etc.</a></li><li><a href='http://css4design.com/wordpress-menu-funky-avec-wp_list_bookmarks' title='Wordpress &#8212; Menus «funky» avec wp_list_bookmarks()'>WordPress &#8212; Menus «funky» avec wp_list_bookmarks()</a></li><li><a href='http://css4design.com/danse-avec-les-loops-1-un-theme-wordpress-mis-a-nu' title='Danse avec les loops #1 : un thème WordPress mis à nu'>Danse avec les loops #1 : un thème WordPress mis à nu</a></li></ul>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/optimiser-et-styler-les-categories-wordpress-avec-les-css/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Avec Spongestats 3.0, mes stats ont la patate !</title>
		<link>http://css4design.com/avec-spongestats-3-0-mes-stats-ont-la-patate</link>
		<comments>http://css4design.com/avec-spongestats-3-0-mes-stats-ont-la-patate#comments</comments>
		<pubDate>Sun, 23 Sep 2007 02:17:12 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[Content Management System]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Ergonomie]]></category>
		<category><![CDATA[Navigation]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[Widget]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.css4design.com/blog-reloaded/?p=123</guid>
		<description><![CDATA[Pour mesurer vos statistiques, vous êtes plutôt moderne et web 2.0 ? Après des Release Candidate sorties au pas de course par l&#8217;équipe de développement, Spongestats 3.0 l&#8217;outil de mesure d&#8217;audience en temps réel pour votre site web ou votre blog vient de sortir en version stable. Le tout à la sauce web 2.0 dans ce qu&#8217;il a de meilleur : support des fils RSS, interface xhtml/css boostée avec jQuery, notamment pour la partie Ajax. Du bon, du beau du bobe ! (et du Samy aussi) Vous voulez un outil rapide, beau et fiable ? C&#8217;est Spongestats qu&#8217;il vous faut. [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Favec-spongestats-3-0-mes-stats-ont-la-patate">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Favec-spongestats-3-0-mes-stats-ont-la-patate&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a&amp;b=2" height="61" width="50" />
			</a>
		</div><p><a href="http://spongestats.sourceforge.net/"><img src="http://spongestats.sourceforge.net/images/banniere_toolinux.png" class="il" title="Spongestats, et vos stats ont la patate !" /></a> Pour mesurer vos statistiques, vous êtes plutôt moderne et web 2.0 ? Après des <em>Release Candidate</em> sorties au pas de course par l&#8217;équipe de développement, <a href="http://spongestats.sourceforge.net/" hreflang="fr">Spongestats 3.0</a> l&#8217;outil de mesure d&#8217;audience en temps réel pour votre site web ou votre blog vient de sortir en version stable. Le tout à la sauce web 2.0 dans ce qu&#8217;il a de meilleur : support des fils RSS, interface xhtml/css boostée avec jQuery, notamment pour la partie Ajax.<span id="more-131"></span></p>

<h3> Du bon, du beau du <a href="http://www.gougueule.com/" hreflang="fr">bobe</a> ! (et du <a href="http://blog.lahaut.info/" hreflang="fr">Samy</a> aussi)</h3>

<p>Vous voulez un outil rapide, beau et fiable ? C&#8217;est <em>Spongestats</em> qu&#8217;il vous faut. Et pour le prix en moins en plus on a quoi ? Parmi les fonctionnalités nous trouvons principalement :</p>

<ul>
    <li>les statistiques quotidiennes, mensuelles et annuelles présentées sous forme de diagramme</li>
    <li>le détail des statistiques pour un jour donné (nombre de visiteurs, plages horaires, mots clés, pages d&#8217;entrée, sites et pages référents, etc&#8230;)</li>
    <li>le classement mensuel des pages les plus vues</li>
    <li>le classement des IP et des noms d&#8217;hôtes des visiteurs</li>
    <li>la classement des pages et des domaines ayant des liens vers le site</li>
    <li>la liste des plateformes clientes : systèmes d&#8217;exploitation, navigateurs web et agrégateurs</li>
    <li>la liste des mots clés utilisés pour arriver sur le site</li>
    <li>la liste et le détails des derniers visiteurs ayant parcouru le site</li>
    <li>l&#8217;historique des visiteurs (première et dernières visites, site referent pour chacune de ses visites, etc&#8230;)</li>
    <li>les statistiques des fils RSS ainsi que les agrégateurs utilisés pour les consulter</li>
</ul>

<h3>L&#8217;installation, c&#8217;est pas trop galère ?</h3>

<p>Non, absolument pas : il suffit de télécharger la dernière version, de dézipper le fichier et de copier le dossier spongestats ainsi obtenu à la racine de votre site. Il ne reste plus qu&#8217;à vous rendre à l&#8217;url idoine <em>http://www.votresite.com/spongestats</em> pour être dirigé vers la page d&#8217;installation. Le script vous demandera alors de saisir les paramètres liés à votre base de données, puis cliquez sur le bouton pour créer la base. C&#8217;est Presque fini. La dernière chose à faire est évidemment d&#8217;insérer le script dans toutes les pages à mesurer : un include_once et c&#8217;est parti ;)</p>

<h3>Ouais&#8230; mais là, je suis sûr que tu as paraphrasé la documentation de spongestats, non ?</h3>

<p>Oui, c&#8217;est vrai. Pour me faire pardonner, je faire reprendre sous vos yeux l&#8217;installation pas à pas, d&#8217;accord ?</p>

<ol>
    <li> Je télécharge <a href="http://spongestats.sourceforge.net/?2007/03/27/12-telechargement-de-spongestats" hreflang="fr">la dernière version de Spongestats sur Sourceforge</a>

Tout va bieng ! Je dézippe le fichier <em>SpongeStats-3.0.zip</em> pour obtenir le dossier <em>spongestats</em></li>
    <li> Je tranfère le dossier <em>spongestats</em>à la racine de mon blog sur mon serveur avec <a href="http://filezilla-project.org/" hreflang="en">FileZilla</a> et pendant ce temps, je vérifie que j&#8217;ai toutes les informations nécessaires pour établir le dialogue avec la base de données (<em>Serveur MySQL</em>, <em>Nom d&#8217;utilisateur</em>, <em>Mot de passe</em> et <em>Nom de la base</em>).</li>
    <li> Je me rends à l&#8217;adresse http://www.mon-site.com/spongestats/ et je remplis les champs requis. En plus des éléments relatifs à la connexion avec la base de données, vous devrez préciser deux choses : le <em>Préfixe des tables</em> pour identifier les tables spécifiques à Spongestats si vous l&#8217;installez sur la même base que votre blog et le <em>Mot de passe administrateur</em> pour vous loguer dans l&#8217;espace d&#8217;administration.

Cerise sur le gâteau, vous pourrez tester les paramètres pour vous assurer que tout fonctionne. Vite, je clique sur le bouton <em>Installer Spongestats</em> Pour la création des 4 tables nécessaires au bon fonctionnement de l&#8217;application : <em>sps_archives</em>, <em>sps_config</em>, <em>sps_statistiques</em> du mois et <em>sps_stats_2007_09 pour le mois en cours, d&#8217;autres tables seront créées pour les mois suivants.</em></li>
    <li>Je supprime le dossier <em>install</em> pour plus de sécurité.</li>
    <li>Je place la ligne de code <samp>&lt;?php include_once(&laquo;&nbsp;../spongestats/stats.php&nbsp;&raquo;); ?&gt;</samp> dans mon <em>template</em></li>
    <li>Je commence à regarder mes statistiques de la journée sans que l&#8217;ombre d&#8217;une pétouille ne vienne gâcher mon plaisir !</li>
</ol>

<h3> The <em>La Lène</em> Touch!</h3>

<p>Quand on a pris l&#8217;habitude de l&#8217;interface de <a href="www.phpmyvisites.net/" hreflang="fr">phpMyVisites</a> pour prendre son bol d&#8217;air de stats bien frais, le thème par défaut de <em>Spongestats</em> est vivifiant : vos visiteurs sont tout de suite plus beaux ;) Bref, je suis conquis. Merci à <a href="http://www.jeuxdemaux.com/" hreflang="fr">Hélène</a> d&#8217;avoir pris du temps entre <a href="http://www.aujolipopotin.fr/" hreflang="fr">Au joli popotin</a>, <a href="http://www.gougueule.com/Mini-bob" hreflang="fr">Arthur</a> et <a href="http://www.gougueule.com/" hreflang="fr">Bastien</a> pour nous offrir le thème Citron-vert.</p>

<p>Je vous laisse car j&#8217;ai d&#8217;autres installations à faire, notamment pour <a href="http://www.notoriousblog.fr/" hreflang="fr">Notorious Blog</a>.</p>

<p><em>Stay tuned, I&#8217;ll be back!</em></p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css4design.com/optimiser-et-styler-les-categories-wordpress-avec-les-css' title='Optimiser et styler les catégories WordPress avec les CSS'>Optimiser et styler les catégories WordPress avec les CSS</a></li><li><a href='http://css4design.com/le-petit-journal-du-web-les-fruits-de-la-veille-ont-garde-leur-fraicheur' title='Le petit journal du web &#8212; Les fruits de la veille ont gardé toute leur fraicheur'>Le petit journal du web &#8212; Les fruits de la veille ont gardé toute leur fraicheur</a></li><li><a href='http://css4design.com/le-petit-journal-du-web-novembre-2011' title='Le petit journal du web &#8212; WordPress, développement web, etc.'>Le petit journal du web &#8212; WordPress, développement web, etc.</a></li><li><a href='http://css4design.com/wordpress-menu-funky-avec-wp_list_bookmarks' title='Wordpress &#8212; Menus «funky» avec wp_list_bookmarks()'>WordPress &#8212; Menus «funky» avec wp_list_bookmarks()</a></li><li><a href='http://css4design.com/danse-avec-les-loops-1-un-theme-wordpress-mis-a-nu' title='Danse avec les loops #1 : un thème WordPress mis à nu'>Danse avec les loops #1 : un thème WordPress mis à nu</a></li></ul>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/avec-spongestats-3-0-mes-stats-ont-la-patate/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Widget &quot;Alerte-Enlèvement&quot; : appel aux développeurs !</title>
		<link>http://css4design.com/widget-alerte-enlevement-appel-aux-developpeurs</link>
		<comments>http://css4design.com/widget-alerte-enlevement-appel-aux-developpeurs#comments</comments>
		<pubDate>Sat, 25 Aug 2007 03:02:17 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://www.css4design.com/blog-reloaded/?p=117</guid>
		<description><![CDATA[Delphine Dumont lance un appel à la bonne volonté des développeurs pour créer un Widget qui relaierait l&#8217;alerte enlèvement diffusée généralement à la télévision, sur les signalisations autoroutières, dans les villes, etc. L&#8217;idée de faire se servir de la popularité des blogs pour étendre encore la couverture des alertes. Le principe Un widget &#171;&#160;Alerte-Enlèvement&#160;&#187; permettrait d&#8217;afficher immédiatement et automatiquement l&#8217;alerte dès qu&#8217;elle est donnée et de la supprimer dès que l&#8217;enfant est retrouvé. Vu le nombre de blogs qui existent, ce serait un relais énorme, instantané, permanent (contrairement aux diffusions espacées à la télé ou la radio) et qui comblerait [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Fwidget-alerte-enlevement-appel-aux-developpeurs">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Fwidget-alerte-enlevement-appel-aux-developpeurs&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a&amp;b=2" height="61" width="50" />
			</a>
		</div><p>Delphine Dumont lance un <a hreflang="fr" href="http://www.redacbox.fr/index.php?2007/08/24/704-widget-alerte-enlvement-3">appel à la bonne volonté des développeurs</a> pour créer un <em>Widget</em> qui relaierait <a hreflang="fr" href="http://www.alerte-enlevement.gouv.fr/">l&#8217;alerte enlèvement</a> diffusée généralement à la télévision, sur les signalisations autoroutières, dans les villes, etc. L&#8217;idée de faire se servir de la popularité des blogs pour étendre encore la couverture des alertes.</p>

<h3>Le principe</h3>

<blockquote cite="http://www.redacbox.fr/index.php?2007/08/24/704-widget-alerte-enlvement-3">Un widget &laquo;&nbsp;Alerte-Enlèvement&nbsp;&raquo; permettrait d&#8217;afficher immédiatement et automatiquement l&#8217;alerte dès qu&#8217;elle est donnée et de la supprimer dès que l&#8217;enfant est retrouvé. Vu le nombre de blogs qui existent, ce serait un relais énorme, instantané, permanent (contrairement aux diffusions espacées à la télé ou la radio) et qui comblerait le manque pour ceux qui n&#8217;ont pas accès à la télé ou à la radio. Bref, ce serait du tout bon.</blockquote>

<p>Un flux RSS sera bientôt disponible pour les partenaires, ce qui fournira la matière première du Widget. Parmi les questions soulevées, le dimensionnement du serveur pour éviter les problèmes de saturation est crucial. En bref, Delphine à besoin d&#8217;un ou plusieurs experts pour faire des estimations projectives et des spécialistes en équipement réseaux en France afin de lister les partenaires éventuels.</p>

<p>Voilà, à vous de <del>jouer</del> coder et/ou de relayer ;)</p>

<p><strong>Mise-à-jour :</strong> Je me demande dans quelle mesure on pourrait utiliser l&#8217;API <a hreflang="fr" href="http://www.journaldunet.com/developpeur/tutoriel/php/020109php_xmlrpc.shtml">XML-RPC</a> disponible sur la majorité des systèmes de blog (enfin je suppose) et de s&#8217;en servir pour publier automatiquement un billet concernant l&#8217;alerte en cours. Il suffirait pour celà de fournir ses informations de connexion de manière anonyme et le système se contenterait de publier un billet sur l&#8217;ensemble des blogs volontaires.</p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css4design.com/ajouter-un-bouton-paypal-faire-un-don-dans-wordpress' title='Ajouter un bouton Paypal «Faire un don» dans WordPress'>Ajouter un bouton Paypal «Faire un don» dans WordPress</a></li><li><a href='http://css4design.com/wordpress-archives-reloaded-avec-calendarchives' title='WordPress &#8212; archives &quot;Reloaded&quot; avec Calendarchives'>WordPress &#8212; archives &quot;Reloaded&quot; avec Calendarchives</a></li><li><a href='http://css4design.com/danse-avec-les-loops-1-un-theme-wordpress-mis-a-nu' title='Danse avec les loops #1 : un thème WordPress mis à nu'>Danse avec les loops #1 : un thème WordPress mis à nu</a></li><li><a href='http://css4design.com/les-widgets-dans-wordpress-25-avec-widgetisator' title='Les widgets dans WordPress 2.5 avec widgétisator ;)'>Les widgets dans WordPress 2.5 avec widgétisator ;)</a></li><li><a href='http://css4design.com/rollsense-google-adsense-du-contenu-ou-revolution-dans-lechange-de-lien' title='rollSense : Google Adsense du contenu ou révolution dans l&#039;échange de lien ?'>rollSense : Google Adsense du contenu ou révolution dans l&#039;échange de lien ?</a></li></ul>
]]></content:encoded>
			<wfw:commentRss>http://css4design.com/widget-alerte-enlevement-appel-aux-developpeurs/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Tutoriel WordPress : la sidebar à la loupe, comprendre les widgets et déclarer une &quot;WAR&quot;</title>
		<link>http://css4design.com/tutoriel-wordpress-2-2-la-sidebar-a-la-loupe-comprendre-les-widgets-et-declarer-une-war</link>
		<comments>http://css4design.com/tutoriel-wordpress-2-2-la-sidebar-a-la-loupe-comprendre-les-widgets-et-declarer-une-war#comments</comments>
		<pubDate>Tue, 29 May 2007 07:37:14 +0000</pubDate>
		<dc:creator>Bruno Bichet</dc:creator>
				<category><![CDATA[Content Management System]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Sidebar]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://www.css4design.com/blog-reloaded/?p=94</guid>
		<description><![CDATA[A l&#8217;installation de WordPress 2.2, le thème par défaut propose une barre latérale contenant le champs de recherche, les catégories, les pages ou encore la blogoliste. Le tout, affichés via une liste non ordonnée contenant elle-même d&#8217;autres listes. C&#8217;est pratique en plus d&#8217;avoir du sens. Mais si je voulais séparer ces éléments pour respecter une charte graphique allant au-delà de la présentation habituelle, je devrais modifier le code HTML en plus de modifier la feuille de style CSS. Dans ce tutoriel, j&#8217;aborde la transformation de cette liste globale en plusieurs blocs transpositionnables, en enfilant des gants pour commencer, puis avec [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 18px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fcss4design.com%2Ftutoriel-wordpress-2-2-la-sidebar-a-la-loupe-comprendre-les-widgets-et-declarer-une-war">
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fcss4design.com%2Ftutoriel-wordpress-2-2-la-sidebar-a-la-loupe-comprendre-les-widgets-et-declarer-une-war&amp;source=br1o&amp;style=normal&amp;service=bit.ly&amp;service_api=R_0c1ee4b64f105d1b2672690740a77d6a&amp;b=2" height="61" width="50" />
			</a>
		</div><p><a title="Communauté WordPress francophone" href="http://www.wordpress-fr.net/category/"><img class="il" title="Communauté WordPress francophone" src="/images/billet/widget-wordpress/logo-wordpress.png" alt="" /></a> A l&#8217;installation de <a hreflang="fr" href="http://www.wordpress-fr.net/telechargements/">WordPress 2.2</a>, le thème par défaut propose une barre latérale contenant le champs de recherche, les catégories, les pages ou encore la blogoliste. Le tout, affichés via une liste non ordonnée contenant elle-même d&#8217;autres listes. C&#8217;est pratique en plus d&#8217;avoir du sens. Mais si je voulais séparer ces éléments pour respecter une charte graphique allant au-delà de la présentation habituelle, je devrais modifier le code HTML en plus de modifier la feuille de style CSS. Dans ce tutoriel, j&#8217;aborde la transformation de cette liste globale en plusieurs blocs <em>transpositionnables</em>, en enfilant des gants pour commencer, puis avec les <em>Widgets</em> qui ont fait leur apparition. Je termine en ajoutant une deuxième zone <em>widgétisable</em> à un thème qui n&#8217;en comportait qu&#8217;une au départ. J&#8217;en ai profité pour rendre le code du Widget <em>Texte 1</em> plus sémantique en remplaçant une <samp>div</samp> par un <samp>p</samp> (c&#8217;est élégant, tiens&#8230;) ;)<span id="more-98"></span></p>

<p><strong>Note :</strong> bien qu&#8217;écrit lors de la sortie de la version 2.2, cet article est toujours d&#8217;actualité ;)</p>

<h3>Les mains dans le cambouis&#8230;</h3>

<p>L&#8217;affichage des fonctionnalités est réalisé de plusieurs manières. Il s&#8217;agit parfois d&#8217;inclure un fichier qui fournit tout le code HTML nécessaire ou d&#8217;utiliser une fonction précédée ou non de balises <samp>li</samp>. Tout au long de ce tutoriel, j&#8217;ai choisi d&#8217;expliciter le parti-pris du thème par défaut concernant le balisage HTML de la <em>sidebar</em> en particulier, sachant que la zone de contenu principal ne présente pas de difficultés particulières.</p>

<h4>L&#8217;affichage du champ de recherche</h4>

<p>Le champs de recherche est appelé via la commande PHP <em>include</em>. Pour l&#8217;insérer dans la liste non ordonnée, le concepteur du thème <em>default</em> a simplement ajouté des balises <samp>li</samp> puisque la balise parente <samp>ul</samp> est présente dès le début de <em>sidebar.php</em>.
<pre id="ex1"> &lt;li&gt;&lt;?php include (TEMPLATEPATH . '/searchform.php'); ?&gt; &lt;/li&gt;</pre>
Cette <a hreflang="fr" href="http://giminik.developpez.com/xhtml/li.html">balise li</a> est une des rares balises HTML de deuxième niveau avec <a hreflang="fr" href="http://giminik.developpez.com/xhtml/dd.html">dd</a> (mise à part le <samp>body</samp> évidemment) qui accepte tout type de balises en son sein. Il est même possible d&#8217;y placer du texte directement sans perdre en conformité. Ce comportement associé au fait qu&#8217;<strong>on peut justifier l&#8217;utilisation d&#8217;une liste à partir de deux ou trois élements faisant partie d&#8217;une même unité logico-sémantique</strong>, explique le succès des listes <samp>ul</samp> ou <samp>ol</samp> auprès des intégrateurs HTML.</p>

<p>ll est intéressant de noter l&#8217;usage de la <em>contante</em> <a hreflang="en" href="http://codex.wordpress.org/Theme_Development#Referencing_Files_From_a_Template">TEMPLATEPATH</a> qui donne le chemin absolu vers le dossier du thème activé depuis l&#8217;interface d&#8217;administration. Il s&#8217;agit d&#8217;ailleurs de la méthode recommandée pour inclure des fichiers dans vos <em>templates</em>.</p>

<h4>L&#8217;affichage des Pages, de la Blogoliste et des Catégories</h4>

<p>Par défaut, ces fonctions génèrent des éléments de liste <samp>li</samp> qui sont habillées par la balise <samp>ul</samp> présente au début de <em>sidebar.php</em>. A noter que le titre <samp>h2</samp> est précisé en tant qu&#8217;option :
<pre id="ex2"> &lt;?php wp_list_pages('title_li=&lt;h2&gt;Pages&lt;/h2&gt;'); ?&gt;</pre>
<pre id="ex3"> &lt;?php wp_list_bookmarks(); ?&gt;</pre>
<pre id="ex4"> &lt;?php wp_list_categories('show_count=1&amp;title_li=&lt;h2&gt;Catégories&lt;/h2&gt;'); ?&gt;</pre>
Pour info, voici le marquage HTML des <em>Catégories</em> de l&#8217;exemple ci-dessus :
<pre id="ex5">&lt;li class="categories"&gt;
    &lt;h2&gt;Catégories&lt;/h2&gt;
    &lt;ul&gt;
        &lt;li&gt;&lt;a href="#"&gt;contines&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#"&gt;nouvelles&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#"&gt;pensées&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/li&gt;</pre></p>

<h4>L&#8217;affichage des Archives</h4>

<p>Les <em>Archives</em> nécessitent plus d&#8217;attention car la fonction ne produit qu&#8217;une suite de <samp>li</samp>, qu&#8217;il faut bien évidemment encadrer par une balise parente <samp>ul</samp>. Mais ça ne suffit pas : comme elle ne possède pas l&#8217;option pour afficher le titre, il faut le rajouter dans le code HTML. Ce qui demande d&#8217;ajouter une balise <samp>li</samp> au-dessus afin de respecter la structure du HTML qui n&#8217;autorise pas l&#8217;élément <samp>ul</samp> à être directement suivi d&#8217;un élément <samp>h2</samp> ^^
<pre id="ex6">&lt;li&gt;
    &lt;h2&gt;Archives&lt;/h2&gt;
    &lt;ul&gt;
        &lt;?php wp_get_archives('type=monthly'); ?&gt;
    &lt;/ul&gt;
&lt;/li&gt;</pre>
Pour styler ces éléments de liste, il est essentiel de garder à l&#8217;esprit l&#8217;imbrication des <samp>ul li ul li</samp> ou <samp>ul ul li</samp>&#8230;</p>

<h4><em>Transportabiliser</em> ces éléments</h4>

<p>Si je voulais déplacer certains éléments de cette <em>sidebar</em> pour mettre le champs de recherche dans le <em>header</em> et transformer les <em>Catégories</em> en menu horizontal placé juste au-dessus des billets, je devrais placer chaque appel de fonction dans une balise <samp>div</samp> &laquo;&nbsp;transportable&nbsp;&raquo; ou &laquo;&nbsp;positionnable&nbsp;&raquo; si vous préférez. Pour celà, il suffirait de remplacer les balises <samp>li</samp> des deux exemples précédents par des <samp>div</samp> et le tour est joué.</p>

<h3>&#8230;ou avec les Widgets ?</h3>

<p>Je dois dire qu&#8217;au début, l&#8217;arrivée des Widgets ne m&#8217;a fait ni chaud ni froid : ils existaient déjà en tant que plugin. Par ailleurs, je préfère placer le code moi-même. Toutefois, dans une optique <em>blog d&#8217;entreprise</em>, ces modules sont une bénédiction pour donner aux clients qui veulent &laquo;&nbsp;prendre la main&nbsp;&raquo; sur leur outil de blog, la possibilité de le faire sans trop de casse.</p>

<p>Pour paraphraser une publicité bien connue : <strong>si c&#8217;est bon pour le confort de mon client, alors c&#8217;est bon pour mon confort !</strong> Je me suis donc penché sur la question : on peut vraiment se simplifier la vie &#8211; et le code &#8211; en utilisant les <em>Widgets</em>. Le principe est simple : le sous-menu <em>Widgets</em> dans le menu <em>Thèmes</em> de l&#8217;administration permet de faire glisser les <em>équivalents Widgets</em> des fonctionnalités abordées plus haut (plus quelques autres qui étaient disponibles auparavant sous forme de plugin, comme : <em>Commentaires récents</em>, <em>Articles récents</em> et le très pratique module <em>Texte</em>) sur l&#8217;emplacement réservé <em>Colonne latérale 1</em>.</p>

<h4>Comment ça marche ?</h4>

<p>Par défaut, les fonctionnalités de la barre latérale sont gérées &laquo;&nbsp;en dur&nbsp;&raquo; dans le fichier <em>sidebar.php</em> qui attend que l&#8217;on glisse un Widget dans l&#8217;emplacement prévu pour passer en mode <em>Dynamic Sidebar</em>. Ce qui explique la présence de <em>functions.php</em> dans le dossier <em>themes</em>. Ce fichier est automatiquement reconnu par le moteur de WordPress dès sa création (au cas où je voudrais <a hreflang="en" href="http://automattic.com/code/widgets/themes/">widgétiser un thème</a> plus ancien) : il est destiné à contenir toutes mes fonctions PHP en plus des lignes suivantes  :
<pre id="ex7">&lt;?php if (function_exists('register_sidebar') )
    register_sidebar(array(
        'before_widget' =&gt; '&lt;li id="%1$s" class="widget %2$s"&gt;',
        'after_widget' =&gt; '&lt;/li&gt;',
        'before_title' =&gt; '&lt;h2 class="widgettitle"&gt;',
        'after_title' =&gt; '&lt;/h2&gt;',
    ));
?&gt;</pre>
<em>Grosso modo</em> : si la fonction <em>register_sidebar()</em> existe, tous les Widgets activés se verront chapeautés par un élément de liste <samp>li</samp> et le titre sera encadré par un <samp>h2</samp> (l&#8217;élément <samp>ul</samp> est à ajouter dans le code, comme c&#8217;est le cas dans le thème par défaut).</p>

<p>Dans le fichier <em>sidebar.php</em>, je trouve, juste après l&#8217;ouverture de la balise <samp>ul</samp>, le code qui affiche ou non les fonctionnalités par défaut si le thème n&#8217;est pas <em>Widget-Ready</em> ou s&#8217;ils n&#8217;ont pas été activés. Autrement, ce sont les Widgets activés dans le panneau d&#8217;administration qui s&#8217;affichent.
<pre id="ex8">&lt;div id="sidebar"&gt;
    &lt;ul&gt;
        &lt;?php   /* Widgetized sidebar, if you have the plugin installed. */
            if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?&gt;
                [ le code pour afficher votre sidebar si votre thème n'est pas
                widget ready ou si les widgets ne sont pas activés ]
            &lt;?php endif; ?&gt;
    &lt;/ul&gt;
&lt;/div&gt;</pre>
Pour remplacer les éléments de liste de premier niveau, je supprime les balises <samp>ul</samp> situées après l&#8217;ouverture de <samp>&lt;div id=&nbsp;&raquo;sidebar&nbsp;&raquo;&gt;</samp> et juste avant la dernière balise fermante <samp>&lt;/div&gt;</samp> dans <em>sidebar.php</em>, puis j&#8217;utilise l&#8217;élément <samp>div</samp> à la place du <samp>li</samp> dans le passage suivant du fichier <em>functions.php</em> <a href="#ex7">vu précédemment</a> :
<pre id="ex9">'before_widget' =&gt; '&lt;div id="%1$s" class="widget %2$s"&gt;', 'after_widget' =&gt; '&lt;/div&gt;',</pre>
Désormais, chaque appel de Widget sera encadré par une jolie <samp>div</samp> avec le nom du module comme identifiant, accompagné de la classe générique pour les Widgets et d&#8217;une classe spécifique pour le module en question.</p>

<p>Pour info et pour comparer avec le <a href="#ex5">premier exemple</a>, voici le marquage HTML des Catégories:
<pre id="ex10">&lt;div id="categories" class="widget widget_categories"&gt;
    &lt;h2 class="widgettitle"&gt;Catégories&lt;/h2&gt;
    &lt;ul&gt;
        &lt;li&gt;&lt;a href="#"&gt;contines&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#"&gt;nouvelles&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#"&gt;pensées&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;</pre>
Voici maintenant le marquage HTML affichant le contenu du Widget <em>Texte 1</em> :
<pre id="ex11">&lt;div id="text-1" class="widget widget_text"&gt;
    &lt;h2 class="widgettitle"&gt;Introduction&lt;/h2&gt;
    &lt;div class="textwidget"&gt;
        Bla bla bla...
    &lt;/div&gt;
&lt;/div&gt;</pre>
Arrgh ! Mais que vois-je ? Et la sémantique, alors, elle est où ? Lorsqu&#8217;on ne saisie que du texte, il faut se contenter d&#8217;une pauvre <samp>div</samp> sans signification pour encadrer notre prose ? Pas très <a hreflang="fr" href="http://websemantique.org/PagePrincipale">sémantique</a> tout ça. Je vais réparer tout celà efficacement à défaut de le faire proprement&#8230; Je vais modifier le fichier <em>/wp-includes/widgets.php</em> à la ligne 502 pour remplaçer les éléments <samp>div</samp> de la fonction <em>wp_widget_text($args, $number = 1)</em> par des éléments <samp>p</samp> plus parlant !</p>

<p>Il existe certainement un moyen pour arriver au même résultat en ne modifiant que le fichier <em>functions.php</em> du dossier <em>themes</em>, ce qui serait bien plus propre. Mais bon, la modif est minime et le résultat en vaut la peine ;) Et puis, je garde une trace des modifications apportées à mon code (enfin, je crois ;) ).</p>

<p>Heureusement, il est possible de saisir du code HTML dans le widget <em>Texte</em> qui accepte toutes les balises, de sorte que si l&#8217;on saisit le texte entre deux balises <samp>p</samp>, le &laquo;&nbsp;problème&nbsp;&raquo; est résolu ;) Mais bon, quand ce texte tient sur un seul paragraphe (ce qui est souvent le cas dans les présentations de blogs ou d&#8217;auteurs) ou que l&#8217;administrateur du blog ne connait pas le HTML (ce qui arrive lorsqu&#8217;on livre un blog clés en main), ce petit détour vers <em>widget.php</em> peut présenter un intérêt.</p>

<h4>MàJ : La solution de burningHat pour modifier les widgets originaux proprement</h4>

<p>La modification du moteur de WordPress n&#8217;est jamais une bonne idée : les concepteurs ont fait moult effort pour qu&#8217;on l&#8217;évite. Encore faut-il s&#8217;y connaitre un peu. C&#8217;est le cas de <a hreflang="fr" href="http://blog.burninghat.net/">burningHat</a> qui s&#8217;est creusé la tête pour trouver une solution dans l&#8217;esprit WordPress : élégance et efficacité.</p>

<p>L&#8217;idée est de redéfinir les fonctions des <em>widgets</em> dans le fichiers <em>functions.php</em> qui est attaché au thème et non au moteur. Voici un extrait de l&#8217;article original : <a hreflang="fr" href="http://blog.burninghat.net/2007/06/09/wordpress-22-modifier-les-widgets-originaux/">WordPress 2.2 &#8211; Modifier les widgets originaux</a> que je vous invite à lire sans tarder :</p>

<blockquote title="http://blog.burninghat.net/2007/06/09/wordpress-22-modifier-les-widgets-originaux/">Nous allons utiliser cette méthode afin de faire en sorte que le widget “pages” exclu certaines des pages de notre blog de son listing.

Je voulais exclure les liens vers “Archives”, “Liens” et “Nuage de tags” afin de de les séparer dans une rubrique à part. Ces pages sont identifiées respectivement par les n°131, 132 et 133.

Le code dans une sidebar classique serait donc :
<pre> &lt;?php wp_list_pages('exclude=131,132,133&amp;title_li='); ?&gt;</pre>
Je vous renvoie à <a title="Codex WordPress - WP_List_Pages tag" hreflang="en" href="http://codex.wordpress.org/Template_Tags/wp_list_pages">la page du codex</a> pour détails de la fonction “<em>wp_list_pages</em>“. Nous allons donc définir un widget pour notre thème qui renverra le même affichage. Pour cela ouvrons le fichier “<em>functions.php</em>” situé à la racine de notre thème et ajoutons une fonction “<em>widget_montheme_pages</em>” :
<pre>function widget_newburn_pages() {
  wp_list_pages('exclude=131,132,133&amp;title_li=&lt;h2&gt;Et encore...&lt;/h2&gt;');
}</pre>
Et pour que WordPress en tienne compte en lieu et place du widget “<em>Pages</em>” normal, ajoutons également la condition suivante :
<pre> if ( function_exists('register_sidebar_widget') ){   register_sidebar_widget('pages', 'widget_newburn_pages'); }</pre>
Cette dernière va simplement dire à WordPress que le widget “<em>pages</em>” à utiliser n’est pas celui d’origine mais celui que nous venons de définir avec la fonction “<em>widget_newburn_pages</em>“.</blockquote>

<h3>Widgets Area Ready ou comment gérer plusieurs &laquo;&nbsp;barres latérales&nbsp;&raquo; avec les Widgets</h3>

<p>Certains thèmes sont prévus pour fonctionner avec deux &laquo;&nbsp;barres latérales&nbsp;&raquo;, bien que ce terme est réducteur puisqu&#8217;il s&#8217;agit simplement d&#8217;une zone que l&#8217;on peut placer n&#8217;importe où avec les CSS du moment que la structure du code HTML le permet&#8230; C&#8217;est pourquoi je préfère parler de <em>Widgets Area Ready</em> ou <acronym title="Widgets Area Ready">WAR</acronym> pour les intimes :)</p>

<p>Pour mettre en place plusieurs <acronym title="Widgets Area Ready">WAR</acronym>, il faut apporter des modifications à <em>functions.php</em> :
<pre id="ex12">&lt;?php if ( function_exists('register_sidebar') )
    $widgetWrap = array(
        'before_widget' =&gt; '&lt;div id="%1$s" class="widget %2$s"&gt;',
        'after_widget' =&gt; '&lt;/div&gt;',
        'before_title' =&gt; '&lt;h2 class="widgettitle"&gt;',
        'after_title' =&gt; '&lt;/h2&gt;',
    );
    register_sidebars(2, $widgetWrap); ?&gt;</pre>
Notez le &laquo;&nbsp;s&nbsp;&raquo; à register_sidebars(&#8230;) qui a son importance. Je me suis inspiré de ce qui existe dans le <a hreflang="en" href="http://www.plaintxt.org/themes/sandbox/">thème sandbox</a> :</p>

<p>J&#8217;ajoute ensuite le numéro d&#8217;ordre dans la fonction <em>dynamic_sidebar()</em> : <samp>1</samp> puis <samp>2</samp> et ainsi de suite pour chaque déclaration de <acronym title="Widgets Area Ready">WAR</acronym> dans les fichiers où j&#8217;ai prévu d&#8217;afficher des Widgets :
<pre id="ex13">&lt;div id="sidebar"&gt;
    &lt;ul&gt;
        &lt;?php   /* Widgetized sidebar, if you have the plugin installed. <em>/
            if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(1) ) : ?&gt;
                [ Les widgets glissés dans "Colonne latérale 1" s'afficheront ici  ]
            &lt;?php endif; ?&gt;
    &lt;/ul&gt; &lt;/div&gt; &lt;div id="header-bis"&gt;
    &lt;ul&gt;
        &lt;?php   /</em> Widgetized sidebar, if you have the plugin installed. */
            if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(2) ) : ?&gt;
                [ Les widgets glissés dans "Colonne latérale 2" s'afficheront là ]
            &lt;?php endif; ?&gt;
    &lt;/ul&gt;
&lt;/div&gt;</pre>
Si tout se passe bien, la page d&#8217;adminitration des <em>Widgets</em> devrait proposer &laquo;&nbsp;Colonnes latérales 1&#8243; et &laquo;&nbsp;Colonnes latérales 2&#8243; pour accueillir les modules.</p>

<h4>Pour aller plus loin</h4>

<p>Oups ! j&#8217;ai dit &laquo;&nbsp;Colonnes latérales&nbsp;&raquo; et non pas <acronym title="Widgets Area Ready">WAR</acronym> ! Et pour cause : l&#8217;emplacement est désigné de cette manière dans la page d&#8217;administration. Qu&#8217;à celà ne tienne, il est possible de modifier l&#8217;intitulé des emplacements en suivant les explications données par <a hreflang="fr" href="http://automattic.com/code/widgets/api/">automattic</a>.</p>

<p>Sauf qu&#8217;après quelques essais, l&#8217;intitulé est bien modifié mais le <samp>%d</samp> s&#8217;affiche à la place des chiffres. J&#8217;ai pourtant essayé deux méthodes :
<pre id="ex14">&lt;?php if ( function_exists('register_sidebar') )
    $widgetWrap = array(
        'before_widget' =&gt; '&lt;div id="%1$s" class="widget %2$s"&gt;',
        'after_widget' =&gt; '&lt;/div&gt;',
        'before_title' =&gt; '&lt;h2 class="widgettitle"&gt;',
        'after_title' =&gt; '&lt;/h2&gt;',
        'name'=&gt;'Foobar %d',
    );
    register_sidebars(2, $widgetWrap);
?&gt;</pre>
Puis :
<pre id="ex15">&lt;?php if ( function_exists('register_sidebar') )
    $widgetWrap = array(
        'before_widget' =&gt; '&lt;div id="%1$s" class="widget %2$s"&gt;',
        'after_widget' =&gt; '&lt;/div&gt;',
        'before_title' =&gt; '&lt;h2 class="widgettitle"&gt;',
        'after_title' =&gt; '&lt;/h2&gt;',
    );
    register_sidebars(2, $widgetWrap, array('name'=&gt;'Foobar %d'));
?&gt;</pre>
Pour continuer dans les améliorations, je cherche comment obtenir un formatage différent selon la <acronym title="Widgets Area Ready">WAR</acronym> utilisée. Pour l&#8217;instant, j&#8217;ai l&#8217;impression que seul un modèle peut s&#8217;appliquer. Si vous avez une idée sur la question, n&#8217;hésitez pas à vous manifester :)</p>

<h3>En guise de conclusion express</h3>

<p>Comme la peinture de <a hreflang="fr" href="http://www.stupeflip.com/">Stupeflip</a>, <a hreflang="en" href="http://wordpress.org/">WordPress</a> est un outil de blog aux possibilités stupéfiantes que je teste sur différents terrains de jeux que je dévoilerais en temps voulu&#8230;
<a hreflang="fr" href="http://www.dotclear.net/">Dotclear</a> n&#8217;est pas en reste puisque j&#8217;ai un billet en cours de finalisation dans les cartons concernant la version 2 bêta 6 (tiens, manquerais plus qu&#8217;une version stable sorte avant que je publie mon billet. Pas taper, pas taper ;) )</p>

<p><em>Stay tuned and mind the gap!</em></p>

<h3 class='related_post_title'>Articles sur le même sujet</h3>

<ul class='related_post'><li><a href='http://css4design.com/danse-avec-les-loops-1-un-theme-wordpress-mis-a-nu' title='Danse avec les loops #1 : un thème WordPress mis à nu'>Danse avec les loops #1 : un thème WordPress mis à nu</a></li><li><a href='http://css4design.com/les-widgets-dans-wordpress-25-avec-widgetisator' title='Les widgets dans WordPress 2.5 avec widgétisator ;)'>Les widgets dans WordPress 2.5 avec widgétisator ;)</a></li><li><a href='http://css4design.com/ecrire-sur-son-blog-wordpress-avec-live-writer' title='Ecrire sur son blog WordPress avec Live Writer'>Ecrire sur son blog WordPress avec Live Writer</a></li><li><a href='http://css4design.com/optimiser-et-styler-les-categories-wordpress-avec-les-css' title='Optimiser et styler les catégories WordPress avec les CSS'>Optimiser et styler les catégories WordPress avec les CSS</a></li><li><a href='http://css4design.com/avec-spongestats-3-0-mes-stats-ont-la-patate' title='Avec Spongestats 3.0, mes stats ont la patate !'>Avec Spongestats 3.0, mes stats ont la patate !</a></li></ul>
 <p><a href="http://css4design.com/?flattrss_redirect&amp;id=98&amp;md5=b8f127de6fcd277b4bebcb3f21ef616d" title="Flattr" target="_blank"><img src="http://css4design.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://css4design.com/tutoriel-wordpress-2-2-la-sidebar-a-la-loupe-comprendre-les-widgets-et-declarer-une-war/feed</wfw:commentRss>
		<slash:comments>56</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced (User agent is rejected)

Served from: css4design.com @ 2012-02-04 04:40:03 -->
