Какова цель файла paged.php?

10

В контексте шаблона иерархии диаграммы? Насколько я понимаю, файл paged.php как-то связан с архивом?

введите описание изображения здесь

chrisjlee
источник

Ответы:

8

Если мы посмотрим template-loader.php, мы можем увидеть условия, при которых paged.phpбудут загружены:

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;

Последнее elseif, где загружаемый шаблон загружается, если он существует:

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

Это означает, что все проверки, указанные выше, должны возвращать false для paged.phpзагружаемого шаблона, запроса is_pagedи других более специфичных для контента шаблонов не найдено.

Milo
источник
Я думаю, paged.php может быть использован для настройки страничного страниц - страница / 2 / и т.д. core.trac.wordpress.org/ticket/14779#comment:4
Амит
2
да, это is_paged()означает, что , однако, если доступен какой-либо другой более конкретный шаблон, этот шаблон будет вызываться раньше paged.php. например, если ваша тема имеет archive.phpшаблон, paged.phpона никогда не будет использоваться для любого типа контента, который используется archive.php, независимо от номера страницы.
Майло
2

Да, если у вас есть paged.phpв вашей теме, этот шаблон будет использоваться для всех, кроме первой страницы архива. Это в том случае, если стилизация / разметка для вашего архива кардинально отличаются между первой страницей и последующими страницами.

Стивен Харрис
источник
1
это не совсем точно, если не будет использован более конкретный шаблон, такой как archive.phpили category.phpсуществующий paged.php. только если есть только index.phpшаблон будет paged.phpиметь приоритет.
Майло
Вы абсолютно правы - вы останавливаетесь на первом доступном шаблоне на графике.
Стивен Харрис