<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$loop = new WP_Query(
array(
'post_type' => 'html5-blank',
'posts_per_page' => 5,
'paged'=>$paged
)
);
?>
<?php if ($loop->have_posts()): while ($loop->have_posts()) : $loop->the_post(); ?>
//Loop Code Here..
<?php wp_reset_query(); ?>
<nav>
<?php previous_posts_link( 'Newer posts »' ); ?>
<?php next_posts_link('Older »') ?>
</nav>
<?php endwhile; ?>
<?php else: ?>
結果を入力したときの次のページのURLは次のとおりです。www.mywebsite.com/ blog/page/2は機能しています。しかし、ページネーションのリンクを表示することはできません。
どこがうまくいかなかったのですか?
編集:ページ付けリンクはpage/2/
に表示されていますが、メインのブログページには表示されていません。どうして?
<?php wp_reset_query(); ?>
を間違った場所に置いたと思います。
このようなもの
<?php endwhile; ?>
<?php else: ?>
<?php wp_reset_query(); ?>
カスタム投稿wp_queryを使用したページ付けについて提案する方法は3つあります。残念ながら、今日まで、これに関する良い情報はあまりありません。少なくとも、何が出ているのかがはっきりしない場合もあります。うまくいけば、これが役立ちます!
また、wp_reset_postdata()が間違った場所にあることに注意してください。ただし、正しく機能させるには、さらに多くのことが必要です。
_<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'posts_per_page' => 1,
'paged' => $paged,
'post_type' => 'cpt_type'
);
$cpt_query = new WP_Query($args);
?>
<?php if ($cpt_query->have_posts()) : while ($cpt_query->have_posts()) : $cpt_query->the_post(); ?>
//Loop Code Here...
<?php endwhile; endif; ?>
<nav>
<ul>
<li><?php previous_posts_link( '« PREV', $cpt_query->max_num_pages) ?></li>
<li><?php next_posts_link( 'NEXT »', $cpt_query->max_num_pages) ?></li>
</ul>
</nav>
_
上記のように、_previous_posts_link
_と_next_posts_link
_の形式が少し異なり、_max_num_pages
_変数にアクセスします。 _max_num_pages
_にアクセスするときは、必ず独自のクエリ変数名を使用してください。 $ cpt_queryを使用していることに注意してください。これは、クエリ例の変数だからです。
これは多くの人が推奨することですが、$ wp_query変数を一時変数に割り当てて再割り当てするように注意してください。そうしないと、あらゆる種類の問題が発生します。そのため、オプション#1をお勧めします。 CSSトリック に記載されているように、次のようなことができます。
_<?php
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query();
$wp_query->query('showposts=6&post_type=news'.'&paged='.$paged);
while ($wp_query->have_posts()) : $wp_query->the_post();
?>
<!-- LOOP: Usual Post Template Stuff Here-->
<?php endwhile; ?>
<nav>
<?php previous_posts_link('« Newer') ?>
<?php next_posts_link('Older »') ?>
</nav>
<?php
$wp_query = null;
$wp_query = $temp; // Reset
?>
_
代わりにできる別のオプションと同じように、 WP-pagenavi プラグインを使用し、オプション#1のようにクエリを設定します。ただし、プラグインをインストールしたら、コードに1つの変更を加え、要素内のすべてを削除して、この関数に置き換えます。したがって、次のようになります。
_<nav>
<?php wp_pagenavi( array( 'query' => $cpt_query ) ); ?>
</nav>
_