What’s the purpose of the paged.php file?

The question:

In context of the template hierarchy chart? From what i gather, the paged.php file is something to do with an archive?

enter image description here

The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

If we look in template-loader.php, we can see the conditions under which paged.php will be loaded:

if ( defined('WP_USE_THEMES') && WP_USE_THEMES ) :
    $template = false;
    if     ( is_404()            && $template = get_404_template()            ) :
    elseif ( is_search()         && $template = get_search_template()         ) :
    elseif ( is_tax()            && $template = get_taxonomy_template()       ) :
    elseif ( is_front_page()     && $template = get_front_page_template()     ) :
    elseif ( is_home()           && $template = get_home_template()           ) :
    elseif ( is_attachment()     && $template = get_attachment_template()     ) :
        remove_filter('the_content', 'prepend_attachment');
    elseif ( is_single()         && $template = get_single_template()         ) :
    elseif ( is_page()           && $template = get_page_template()           ) :
    elseif ( is_category()       && $template = get_category_template()       ) :
    elseif ( is_tag()            && $template = get_tag_template()            ) :
    elseif ( is_author()         && $template = get_author_template()         ) :
    elseif ( is_date()           && $template = get_date_template()           ) :
    elseif ( is_archive()        && $template = get_archive_template()        ) :
    elseif ( is_comments_popup() && $template = get_comments_popup_template() ) :
    elseif ( is_paged()          && $template = get_paged_template()          ) :
    else :
        $template = get_index_template();
    endif;
    if ( $template = apply_filters( 'template_include', $template ) )
        include( $template );
    return;
endif;

The last elseif is where the paged template is loaded if it exists:

elseif ( is_paged()          && $template = get_paged_template()          ) :

Which means that all of the checks above have to return false for the paged.php template to be loaded, the query is_paged and no other more content-specific template was found.

Method 2

Yup, if you have paged.php present in your theme, that template will be used for all but the first page of the archive. This is in case the styling/markup for your archive is drastically different between the first page, and subsequent pages.

Method 3

Note that as of WP 4.7 paged.php has been removed from the template loader altogether and thus the template hierarchy.

https://core.trac.wordpress.org/changeset/38755


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment