wp_get_archives
の組み込み引数を使ってアンカー要素をHTMLで囲むことができる方法を私は知っています。アンカーテキストの折り返し範囲を追加するためにアンカーの内容を変更する方法はありますか?その意図は、カテゴリ上の年間アーカイブのリスト(つまり投稿が存在する年の自動リスト)にそれを使用することです。
前:
<ul>
<li><a href="xx">2014</a></li>
<li><a href="xx">2015</a></li>
<li><a href="xx">2016</a></li>
</ul>
後:
<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>
before
とafter
引数( PHP 5.4+ )を探していると思います。
wp_get_archives(
[
'before' => '<span>',
'after' => '</span>'
]
);
<span>
タグを<a>
タグで囲む場合は、次のようにします。
<li><span><a href="xx">Link text</a></span></li>
アンカータグの内側に入れたい場合は、
<li><a href="xx"><span>Link text</span></a></li>
それならあなたはget_archives_link
フィルタを使ってあなたのニーズへのリンクを再構築することができます。
対応するテーマファイルを( 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 );
現在のテーマディレクトリのfunctions.php
ファイルで、フィルタコールバックが次のように定義されている場所。
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;
}
アンカータグの内側にスパンを追加したところ。