早くて簡単。私はfront-page.php
をWordpressで動かしています、そしてこれらのループは私の最新の投稿のためのメインループの上にあります。問題はページネーションテンプレートです。
site.com/page/2
に到達すると、同じファイルテンプレートfront-page.php
が表示されますが、2回目の投稿があります。私が欲しいのは、paged.php
のような他のファイルテンプレートを見せることですが、archive.php
やdate.php
さえも現れません。
Front-page.php全体をラッピングするif (!is_paged())
を書く代わりに、このためのコードはありますか?
frontpage_template
にフィルタを追加し、paged
クエリvarをチェックし、最初のページを超えている場合は独自のテンプレートを追加します。この例ではpaged.php
を使用します。
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' );
フィルタ階層コーデックスエントリ がフィルタを誤ってfront_page_template
としてリストしていることに注意してください。 frontpage_template
にするだけです。