wake-up-neo.com

Vorlagenhierarchie zur Paginierung nach front-page.php

Schnell und einfach. Ich habe front-page.php in Wordpress, und diese Schleifen über die Hauptschleife für meine neuesten Beiträge. Das Problem ist die Paginierungsschablone.

Wenn ich zu site.com/page/2 komme, wird dieselbe Dateivorlage front-page.php angezeigt, jedoch mit der zweiten Runde von Beiträgen. Ich möchte, dass andere Dateivorlagen wie paged.php angezeigt werden, aber nicht einmal archive.php oder date.php.

Gibt es einen Code dafür, anstatt if (!is_paged()) die gesamte front-page.php zu schreiben?

1
DarkGhostHunter

Fügen Sie einen Filter zu frontpage_template hinzu, und überprüfen Sie die Abfragevariable paged, und fügen Sie Ihre eigene Vorlage hinzu, wenn die erste Seite überschritten wird. Ich benutze paged.php in diesem Beispiel:

function wpa56889_template_filter( $templates = '' ){
    $paged = get_query_var( 'paged' );
    if( $paged > 1 ) :
        if( !is_array( $templates ) && !empty( $templates ) ) :
            $templates = locate_template( array( "paged.php", $templates ), false );
        elseif( empty( $templates ) ) :
            $templates = locate_template( "paged.php", false );
        else :
            $new_template = locate_template( array( "paged.php" ) );
            if( !empty( $new_template ) ) array_unshift( $templates, $new_template );
        endif;
    endif;
    return $templates;
}
add_filter( 'frontpage_template', 'wpa56889_template_filter' );

Beachten Sie, dass der Filterhierarchie-Codex-Eintrag den Filter fälschlicherweise als front_page_template auflistet, aber die Funktion, die diesen Filter anwendet, scheint den Unterstrich der Variablen vor dem Aufrufen zu bereinigen. macht es einfach frontpage_template.

1
Milo