如何让我的分页循环不断?

时间:2017-06-20 作者:user13286

所以我为我的single.php 在底部显示下一篇/上一篇文章的模板。然而,它目前的工作方式是线性的(即在最近的帖子上只有一个“下一篇”链接,在最旧的帖子上只有一个“上一篇”链接)。

我想做的是使循环连续,这样在第一篇文章上,“下一篇文章”链接将指向第二篇最新的文章,“上一篇文章”链接将是最旧的文章。

这是我的分页代码:

<?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 } ?>

1 个回复
最合适的回答,由SO网友:dbeja 整理而成

您可以在两个ifs中添加一个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\\u posts上,我将默认的帖子类型保留为post。

结束

相关推荐

Pagination custom query

我正在尝试制作一个自定义页面模板,以显示浏览次数最多的帖子。我可以回复帖子,但我很难弄清楚如何分页。以下是我所拥有的:$args = array(\'orderby\' => \'meta_value_num\', \'meta_key\' => \'post_views_count\', \'posts_per_page\' => 36 ); $loop = new WP_Query( $args ); while ( $