paged.php文件的目的是什么?


10

在模板层次结构图的上下文中?根据我的收集,paged.php文件与存档有关?

在此处输入图片说明

Answers:


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()          ) :

这意味着以上所有检查都必须paged.php为要加载的模板,查询is_paged和所有其他特定于内容的模板返回false 。


我认为,paged.php可用于自定义分页页面-page
amit

2
是的,这就是什么is_paged()意思,但是,如果还有其他更具体的模板可用,则该模板将在before之前调用paged.php。例如,如果您的主题有archive.php模板,paged.phparchive.php无论页面号如何,都绝不会将其用于使用的任何类型的内容。
米洛

2

是的,如果您paged.php的主题存在,则该模板将用于存档的第一页以外的所有内容。如果您的存档的样式/标记在第一页和后续页面之间大不相同。


1
如果将不会使用更具体的模板(例如archive.phpcategory.php存在),这并不完全准确paged.php。仅在只有index.php模板的情况paged.php下优先。
米洛2012年

您是完全正确的-在图表上的第一个可用模板处停止。
史蒂芬·哈里斯

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.