Je sais qu'il est possible d'enrouler du code HTML autour d'éléments d'ancrage avec les arguments intégrés pour wp_get_archives
. Existe-t-il un moyen de modifier le contenu des ancres afin d'ajouter une étendue d'habillage au texte d'ancre? L’intention est de l’utiliser pour dresser une liste des archives annuelles d’une catégorie (c’est-à-dire une liste automatisée des années pour lesquelles des postes existent).
Avant:
<ul>
<li><a href="xx">2014</a></li>
<li><a href="xx">2015</a></li>
<li><a href="xx">2016</a></li>
</ul>
Après:
<ul>
<li><a href="xx"><span>2014</span></a></li>
<li><a href="xx"><span>2015</span></a></li>
<li><a href="xx"><span>2016</span></a></li>
</ul>
Je pense que vous recherchez les arguments before
et after
( PHP 5.4+ ):
wp_get_archives(
[
'before' => '<span>',
'after' => '</span>'
]
);
si vous souhaitez envelopper la balise <span>
autour de la balise <a>
:
<li><span><a href="xx">Link text</a></span></li>
Si vous le souhaitez dans les balises d'ancrage:
<li><a href="xx"><span>Link text</span></a></li>
vous pourriez alors utiliser le filtre get_archives_link
pour reconstruire les liens en fonction de vos besoins.
Modifiez le fichier de thème correspondant avec ( PHP 5.4+ ):
// Add a custom filter
add_filter( 'get_archives_link', 'wpse_get_archives_link', 10, 6 );
// Archive
wp_get_archives(
[
'type' => 'yearly', // For yearly archive
'format' => 'html' // This is actually a default setting
]
); // EDIT the arguments to your needs (I'm not showing the <ul> part here)
// Remove the custom filter
remove_filter( 'get_archives_link', 'wpse_get_archives_link', 10, 6 );
où notre rappel de filtre est défini, dans le fichier functions.php
du répertoire du thème actuel, en tant que:
function wpse_get_archives_link( $link_html, $url, $text, $format, $before, $after )
{
if( 'html' === $format )
$link_html = "\t<li>$before<a href='$url'><span>$text</span></a>$after</li>\n";
return $link_html;
}
où nous avons ajouté l'envergure à l'intérieur de la balise d'ancrage.