获取分页帖子的下一页和上一页

时间:2014-03-03 作者:Tom Oakley

我为客户创建的很多站点都是带有不同页面的帖子,如“前10名”等。这意味着我需要对帖子分页以创建不同的页面。我发现最好的方法是使用<!--nextpage--> 在内容中分离帖子并创建页面。为了浏览页面,我尝试使用get_pagenum_link. 这是我的完整代码:

function postPagination() {
    global $paged;
    $paged = (get_query_var(\'page\')) ? get_query_var(\'page\') : 1;
    $output .= "<div class=\'pagination\'>";
        $output .= "<a href=\'".get_pagenum_link($paged - 1)."\'>Previous Page</a>";
        $output .= "<a href=\'".get_pagenum_link($paged + 1)."\'>Next Page</a>";
    $output .= "</div>";
    return $output;
}
我有两个主要问题:

1)链接在表单中http://domain.dev/2014/03/03/post-title/2/page/2, 返回404。此外,如果我按下下一页链接,它将返回/post-title/2/page/3, i、 e第/3页的部分是正确的,但仍在第2页。如果我去/post-title/page/3 或者,它只会重定向回第一页。/post-title/3/ 工作正常。我想这与permalinks有关

2)上一页代码根本不起作用,它只返回当前页链接,例如,如果您在第2页,上一页链接将返回/post-title/2/. i、 它甚至没有/page/2 最后咬一口。

抱歉,如果这让人困惑,欢迎回答任何问题,并在必要时重新解释。我还应该提到,这段代码是函数中的函数。php和将在内容页中调用。

感谢您帮助我解决这两个问题,以便上一个/下一个链接正常工作:)

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

你所做的似乎是在复制wp_link_pages() 是否:

显示分页帖子的页面链接(即包含一次或多次Quicktag)。这与link\\u pages()的工作方式大致相同(已弃用),不同之处在于参数是以查询字符串格式给出的。此标记必须位于\\u循环中。

正在使用提供的一个或多个参数。。。

$defaults = array(
        \'before\'           => \'<p>\' . __( \'Pages:\' ),
        \'after\'            => \'</p>\',
        \'link_before\'      => \'\',
        \'link_after\'       => \'\',
        \'next_or_number\'   => \'number\',
        \'separator\'        => \' \',
        \'nextpagelink\'     => __( \'Next page\' ),
        \'previouspagelink\' => __( \'Previous page\' ),
        \'pagelink\'         => \'%\',
        \'echo\'             => 1
);
。。。您应该能够非常接近该标记。

特别是,我相信这可以做到(未经测试):

$defaults = array(
        \'before\'           => \'<div class=\'pagination\'>\',
        \'after\'            => \'</div>\',
        \'nextpagelink\'     => __( \'Next page\' ),
        \'previouspagelink\' => __( \'Previous page\' ),
);

结束

相关推荐

Pagination Doesn't Work

I created myfile.php with the following content:global $paged; if ( get_query_var( \'paged\' ) ) { $paged = get_query_var( \'paged\' ); } else if ( get_query_var( \'page\' ) ) { $paged = get_query_var( \'page\' ); } else {