Apa tujuan dari file paged.php?

10

Dalam konteks bagan hierarki templat? Dari apa yang saya kumpulkan, file paged.php ada hubungannya dengan arsip?

masukkan deskripsi gambar di sini

chrisjlee
sumber

Jawaban:

8

Jika kita melihat ke dalam template-loader.php, kita dapat melihat kondisi di mana paged.phpakan dimuat:

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;

Yang terakhir elseifadalah di mana template halaman dimuat jika ada:

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

Yang berarti bahwa semua pemeriksaan di atas harus kembali salah untuk paged.phptemplat dimuat, kueri is_pageddan tidak ada templat khusus konten lainnya ditemukan.

Milo
sumber
Saya pikir, paged.php dapat digunakan untuk menyesuaikan halaman halaman - halaman / 2 / dll. Core.trac.wordpress.org/ticket/14779#comment:4
amit
2
ya, itulah is_paged()artinya, namun jika ada template lain yang lebih spesifik tersedia, template itu akan dipanggil sebelumnya paged.php. misalnya, jika tema Anda memiliki archive.phptemplat, paged.phptidak akan pernah digunakan untuk semua jenis konten yang digunakan archive.php, apa pun nomor halamannya.
Milo
2

Yup, jika Anda telah paged.phphadir dalam tema Anda, templat itu akan digunakan untuk semua kecuali halaman pertama arsip. Ini dalam kasus styling / markup untuk arsip Anda secara drastis berbeda antara halaman pertama, dan halaman berikutnya.

Stephen Harris
sumber
1
ini tidak sepenuhnya akurat, jika templat yang lebih spesifik suka archive.phpatau category.phpada, paged.phptidak akan digunakan. hanya jika hanya ada index.phptemplat yang akan paged.phpdiutamakan.
Milo
Anda benar, benar - Anda berhenti di templat pertama yang tersedia di bagan.
Stephen Harris