私は特集記事と他の記事の数と一番下の標準的なwp_pagenaviでindex.phpを持っています。
私はこのように wordpressコーデックス からの2つのループを使っています。
<?php $my_query = new WP_Query('category_name=featured&posts_per_page=1');
while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID;?>
<!-- Do stuff... -->
<?php endwhile; ?>
<!-- Do other stuff... -->
<?php if (have_posts()) : while (have_posts()) : the_post();
if( $post->ID == $do_not_duplicate ) continue; ?>
<!-- Do stuff... -->
<?php endwhile; endif; ?>
テーマの階層を正しく読んだ場合は、ページ区切りセクションの[前へ]をクリックするときにarchive.phpページを使用する必要があります。
ただし、そうではありません。前へをクリックすると、index.phpと同じレイアウトのページが表示され、同じ機能の投稿が表示されます。 (他の記事のページネーションはうまくいきますが)
私はis_paged
をめちゃくちゃにしていましたが、うまく動かせませんでした...助けてくれてありがとう!
要するに、いいえ - 使用されるテンプレートはクエリに基づいており、ページネーションを行うときは、基本的に同じクエリを繰り返しますが、異なるページに対して使用します。一般にテンプレートは同じになります。
archive.php
はほとんどのクエリに使用することができますが、望ましいテンプレート(カテゴリテンプレート、タグテンプレート、作成者テンプレートなど)がしばしば存在します。何が望ましいかは、 テンプレートの階層構造 によって決まります。ただし、ホームページではindex.php
がよく使用され、テンプレートはページ区切り付きで保持されます。
「ページ1」に表示されているものだけを表示するには、次の方法を試してください。
<?php
//initialize $do_not_duplicate
$do_not_duplicate=0;
//is_paged returns true if we are on page 2,3,...
if(!is_paged()):
//Get featured content for page 1
$my_query = new WP_Query('category_name=featured&posts_per_page=1');
while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID;
//Do stuff...
endwhile;
endif;
//Display rest of content
if (have_posts()) :
while (have_posts()) : the_post();
if( $post->ID == $do_not_duplicate ) continue;
//Do stuff
endwhile;
endif;
?>
テストされていません
is_paged
は、リストに複数のページがあるかどうかを表すブール関数です。
必要なものは$wp_query->query_vars['paged']
です。注目の投稿コードを、で囲みます。
global $wp_query;
if ( !isset($wp_query->query_vars['paged']) || $wp_query->query_vars['paged'] == 1 ) :
# Featured post code
endif;
私はそれがあなたのためにトリックをすると思います。
簡単:これにはWPがたくさん参加しました。直接配列/オブジェクトアクセスは必要ありません。
// Before the loop
$paged = get_query_var( 'paged' );
// In the loop
if (
( ! isset( $paged ) OR ! $paged )
AND is_sticky( get_the_ID() )
{
// do stuff
}
カスタム関数にこの条件文を追加してください。
if ( is_home() && get_query_var( 'paged' ) >= 2 )