Mục đích của tệp paged.php là gì?


10

Trong bối cảnh của biểu đồ phân cấp mẫu? Từ những gì tôi thu thập được, tệp paged.php có liên quan gì đến một kho lưu trữ không?

nhập mô tả hình ảnh ở đây

Câu trả lời:


8

Nếu chúng ta nhìn vào template-loader.php, chúng ta có thể thấy các điều kiện paged.phpsẽ được tải:

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;

Cuối cùng elseiflà nơi mẫu phân trang được tải nếu nó tồn tại:

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

Điều đó có nghĩa là tất cả các kiểm tra ở trên phải trả về false cho paged.phpmẫu được tải, truy vấn is_pagedvà không tìm thấy mẫu cụ thể nào khác về nội dung.


Tôi nghĩ rằng, paged.php có thể được sử dụng để tùy chỉnh các trang paged - trang / 2 / vv core.trac.wordpress.org/ticket/14779#comment:4
amit

2
vâng, đó là những gì is_paged()có nghĩa là, tuy nhiên nếu có bất kỳ mẫu cụ thể nào khác có sẵn, mẫu đó sẽ được gọi trước đó paged.php. ví dụ: nếu chủ đề của bạn có archive.phpmẫu, paged.phpsẽ không bao giờ được sử dụng cho bất kỳ loại nội dung nào sử dụng archive.php, bất kể số trang.
Milo

2

Yup, nếu bạn có paged.phpmặt trong chủ đề của mình, mẫu đó sẽ được sử dụng cho tất cả trừ trang đầu tiên của kho lưu trữ. Đây là trong trường hợp kiểu dáng / đánh dấu cho kho lưu trữ của bạn khác biệt lớn giữa trang đầu tiên và các trang tiếp theo.


1
điều này không hoàn toàn chính xác, nếu một mẫu cụ thể hơn như archive.phphoặc category.phptồn tại, paged.phpsẽ không được sử dụng. chỉ khi có một index.phpmẫu sẽ paged.phpđược ưu tiên.
Milo

Bạn hoàn toàn đúng, bạn dừng lại ở mẫu có sẵn đầu tiên trên biểu đồ.
Stephen Harris

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.