Was ist der Zweck der Datei paged.php?

10

Im Kontext des Vorlagenhierarchiediagramms? Soweit ich weiß, hat die Datei paged.php etwas mit einem Archiv zu tun?

Geben Sie hier die Bildbeschreibung ein

Chrisjlee
quelle

Antworten:

8

Wenn wir hineinschauen template-loader.php, können wir die Bedingungen sehen, unter denen paged.phpgeladen wird:

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;

In der letzten elseifwird die ausgelagerte Vorlage geladen, falls vorhanden:

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

Dies bedeutet, dass alle oben genannten Überprüfungen false zurückgeben müssen, damit die paged.phpzu ladende Vorlage, die Abfrage is_pagedund keine andere inhaltsspezifische Vorlage gefunden wurden.

Milo
quelle
Ich denke, paged.php kann verwendet werden, um ausgelagerte Seiten anzupassen - Seite / 2 / etc. core.trac.wordpress.org/ticket/14779#comment:4
amit
2
Ja, das is_paged()bedeutet, aber wenn eine andere spezifischere Vorlage verfügbar ist, wird diese Vorlage zuvor aufgerufen paged.php. Wenn Ihr Thema beispielsweise eine archive.phpVorlage enthält, paged.phpwird diese archive.phpunabhängig von der Seitenzahl niemals für Inhalte verwendet , die verwendet werden.
Milo
2

Ja, wenn Sie paged.phpin Ihrem Thema vorhanden sind, wird diese Vorlage für alle außer der ersten Seite des Archivs verwendet. Dies ist der Fall, wenn sich das Styling / Markup für Ihr Archiv zwischen der ersten Seite und den nachfolgenden Seiten drastisch unterscheidet.

Stephen Harris
quelle
1
Dies ist nicht ganz richtig, wenn eine spezifischere Vorlage wie archive.phpoder category.phpvorhanden paged.phpnicht verwendet wird. Nur wenn es nur eine index.phpVorlage gibt paged.php, hat dies Vorrang.
Milo
Sie haben absolut Recht - Sie halten bei der ersten verfügbaren Vorlage in der Tabelle an.
Stephen Harris