The get_archives_link WordPress PHP filter allows you to modify the content of an archive link.
Usage
add_filter('get_archives_link', 'your_custom_function', 10, 7);
function your_custom_function($link_html, $url, $text, $format, $before, $after, $selected) {
// your custom code here
return $link_html;
}
Parameters
$link_html(string) – The archive HTML link content.$url(string) – URL to the archive.$text(string) – Archive text description.$format(string) – Link format. Can be ‘link’, ‘option’, ‘html’, or custom.$before(string) – Content to prepend to the description.$after(string) – Content to append to the description.$selected(bool) – True if the current page is the selected archive.
More information
See WordPress Developer Resources: get_archives_link
Examples
Add a custom class to archive links
Modify the archive link by adding a custom class for styling purposes.
add_filter('get_archives_link', 'add_custom_class_to_archive_links', 10, 7);
function add_custom_class_to_archive_links($link_html, $url, $text, $format, $before, $after, $selected) {
$link_html = str_replace('<a', '<a class="custom-class"', $link_html);
return $link_html;
}
Add an icon before the archive text
Prepend an icon to the archive link description.
add_filter('get_archives_link', 'add_icon_before_archive_text', 10, 7);
function add_icon_before_archive_text($link_html, $url, $text, $format, $before, $after, $selected) {
$icon = '<i class="archive-icon"></i>';
$link_html = str_replace($text, $icon . $text, $link_html);
return $link_html;
}
Change the archive link format
Modify the archive link format to display as an unordered list.
add_filter('get_archives_link', 'change_archive_link_format', 10, 7);
function change_archive_link_format($link_html, $url, $text, $format, $before, $after, $selected) {
$link_html = '<li>' . $link_html . '</li>';
return $link_html;
}
Highlight the current archive page
Apply custom styling to the selected archive link.
add_filter('get_archives_link', 'highlight_current_archive_page', 10, 7);
function highlight_current_archive_page($link_html, $url, $text, $format, $before, $after, $selected) {
if ($selected) {
$link_html = str_replace('<a', '<a style="font-weight: bold;"', $link_html);
}
return $link_html;
}
Modify the archive text description
Change the archive text description to display the number of posts.
add_filter('get_archives_link', 'modify_archive_text_description', 10, 7);
function modify_archive_text_description($link_html, $url, $text, $format, $before, $after, $selected) {
$new_text = $text . ' (10 posts)';
$link_html = str_replace($text, $new_text, $link_html);
return $link_html;
}