is_archive() returns false on the archives page

Because an “archives” Page is not an archive index of blog Posts, but rather a Page.

An “archives” page is simply a custom Page template, which applies to a static Page.

The is_archive() conditional returns true if an archive index is being displayed. An archive index page displays Posts, not static Pages.

EDIT

Instead of using if ( is_archive() ), try using if ( is_page( 'archives' ) ) (assuming you’ve named your static Page Archives).

Alternately, you could use if ( is_page_template( 'archives.php' ) ) (assuming you’ve named your template file as archives.php).

Leave a Comment