それで、私はsingle.php
テンプレートのためにいくつかのカスタムページネーションを作成して、一番下に次/前の投稿を表示します。ただし、現在の作業方法は線形です(つまり、最新の投稿には「次の投稿」リンクのみがあり、最も古い投稿には「前の」投稿リンクしかありません)。
最初の投稿では、「次の投稿」リンクが2番目に新しい投稿になり、「前の投稿」リンクが最も古い投稿になるように、ループを継続的にします。
これが私の改ページコードです。
<?php
$nextPost = get_next_post();
if($nextPost) {
$nextPostID = $nextPost->ID;
?>
<a class="prev-post" href="<?php echo get_permalink( $nextPostID ); ?>">
<?php pagination_next($nextPostID); ?>
</a>
<?php } ?>
<?php
$prevPost = get_previous_post();
if($prevPost) {
$prevPostID = $prevPost->ID;
?>
<a class="next-post" href="<?php echo get_permalink( $prevPostID ); ?>">
<?php pagination_prev($prevPostID); ?>
</a>
<?php } ?>
両方のifにelseを追加して、最初の投稿/最新の投稿を取得することができます。
<?php
$nextPost = get_next_post();
if($nextPost) {
$nextPostID = $nextPost->ID;
?>
<a class="prev-post" href="<?php echo get_permalink( $nextPostID ); ?>">
<?php echo $nextPost->post_title; ?>
</a>
<?php } else {
$first_post = get_posts( array(
'posts_per_page' => 1,
'order' => 'ASC'
) );
?>
<a class="prev-post" href="<?php echo get_permalink( $first_post[0]->ID ); ?>">
<?php echo get_the_title( $first_post[0]->ID ); ?>
</a>
<?php } ?>
<?php
$prevPost = get_previous_post();
if($prevPost) {
$prevPostID = $prevPost->ID;
?>
<a class="next-post" href="<?php echo get_permalink( $prevPostID ); ?>">
<?php echo $prevPost->post_title; ?>
</a>
<?php } else {
$latest_post = get_posts( array(
'posts_per_page' => 1,
'order' => 'DESC'
) );
?>
<a class="next-post" href="<?php echo get_permalink( $latest_post[0]->ID ); ?>">
<?php echo get_the_title( $latest_post[0]->ID ); ?>
</a>
<?php } ?>
私はあなたが投稿のためだけにこれが欲しいと思っているので、get_postsでは私はデフォルトの投稿タイプをpostのままにしています。