The is_year() WordPress PHP function determines whether the query is for an existing year archive.
Usage
if (is_year()) {
// Your custom code here
}
Parameters
- None
More information
See WordPress Developer Resources: is_year()
Examples
Display a message on year archive pages
If the current page is a year archive, display a message.
if (is_year()) {
echo "You are browsing the year archive!";
}
Show a custom year archive title
Customize the year archive title.
if (is_year()) {
echo "Year Archive: " . get_the_date('Y');
}
Add a class to the body tag on year archive pages
Add a specific class to the <body> tag for year archive pages.
function my_body_classes($classes) {
if (is_year()) {
$classes[] = 'year-archive';
}
return $classes;
}
add_filter('body_class', 'my_body_classes');
Load a different template for year archives
Load a custom template for year archive pages.
function my_year_archive_template($template) {
if (is_year()) {
$template = locate_template(['year-archive.php']);
}
return $template;
}
add_filter('template_include', 'my_year_archive_template');
Modify the query on year archive pages
Change the number of posts displayed on year archive pages.
function my_year_archive_query($query) {
if ($query->is_year() && $query->is_main_query()) {
$query->set('posts_per_page', 12);
}
}
add_action('pre_get_posts', 'my_year_archive_query');