Pimp my ampersands
Esperluette. Ampersand. アンパサンド. Que de noms barbares pour qualifier cette ligature typographique. Certains diront proportionnel à la difficulté qu’on peut avoir à la reproduire sur papier, pas faux. Il n’empêche que ce signe me plaît beaucoup et il commence à se faire remarquer dans pas mal de mes projets.
Vous me l’accorderez, la version Helvetica n’est pas exceptionnelle. Je préfère davantage la version Baskerville italique. L’idée m’est donc venue de remplacer tous les ampersands présents dans les articles de ce blog et ce de manière automatique.
Pour ce faire, j’ai ajouté deux filtres dans le fichier functions.php de mon thème et déclaré une nouvelle classe CSS .amp que j’applique au moyen desdits filtres.
Un premier filtre pour le contenu:
function contentAmp($content) {
if(!is_feed()) {
$content = str_replace('&-amp;', '<span class="amp">&-amp;</span>', $content);
}
return $content;
}
add_filter('the_content', contentAmp);
On contrôle que l’on est pas dans le flux RSS, on ajoute un span .amp autour des symboles et on applique le filtre.
Note: Vous devez retirer les tirets (-) dans le nom des entités html pour que les filtres fonctionnent!
De même pour les titres sauf que cette fois-ci WordPress n’utilise pas un nom mais un chiffre pour encoder les ampersands. Allez savoir pourquoi.
function titleAmp($title) {
if(!is_feed()) {
$title = str_replace('&-#038;', '<span class="amp">&-amp;</span>', $title);
}
return $title;
}
add_filter('the_title', titleAmp);
Enfin on déclare le style que l’on veut appliquer à nos belles petites esperluettes. Dans mon cas, ça donne:
.amp {
font-family: Baskerville, serif;
font-weight: normal;
font-style: italic;
font-size: 1.2em;
}
Si Baskerville ne vous plait pas, demandez la liste des plus belles esperluettes (relatives aux polices adaptées au web).
NB: Si vous avez une bonne solution pour combiner les deux filtres, je suis preneur.





