<!--nextpage--> and previews

时间:2016-08-24 作者:Archimedes Trajano

我正在尝试预览我的博客帖子<!--nextpage--> 但点击任何其他页面只会返回主页。

4年前,有一条老线索从未解决过https://wordpress.org/support/topic/nextpage-doesnt-work-on-preview?replies=3

预览时的URL如下所示

https://www.trajano.net/?p=1569&preview_id=1569&preview_nonce=c1ab9c2efc&post_format=standard&_thumbnail_id=-1&preview=true

一切都很好,但一旦我点击一个页面,就会发生这种情况:

https://www.trajano.net/?p=1569%2F2%2F&preview_id=1569&preview_nonce=c1ab9c2efc&preview=true

请注意,页码在?p=1569 喜欢?p=1569/2/&preview... 如果它被解码了。

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

预览预定的帖子或页面时,内容分页链接出现错误。

参见票证#32295

已经有一个建议的补丁添加了缺失的future 中的状态检查_wp_link_page() helper函数,该函数生成内容分页链接。

例如,我们可以构建一个快速修复方案,如:

add_filter( \'preview_post_link\', function( $link, $post )
{
    if( ! is_admin() && is_preview() && \'future\' === get_post_status( $post ) )
        $link = preg_replace( \'~p=(\\d+)%2F(\\d+)%2F~\', \'p=$1&page=$2\', $link );

    return $link;
}, 10, 2 );
或使用wp_link_pages_link 过滤器:

add_filter( \'wp_link_pages_link\', function( $link, $i )
{
    if( $i > 1 && \'future\' === get_post_status( get_the_ID() ) && is_preview() )
            $link = preg_replace( \'~p=(\\d+)%2F(\\d+)%2F~\', \'p=$1&page=$2\', $link );

    return $link;
}, 10, 2 );

相关推荐

如何忽略或禁用NextPage标签?

我有一个使用<!--nextpage--> 为分页目的在帖子中添加标签。我想禁用分页,但不删除数据库的标记(也许他们将来会再次使用它们)。已尝试删除wp_link_pages(); 从模板,但它只会显示第一页的内容,没有链接-我不知道这是它应该如何工作或什么错误。我怎样才能让wordpress完全忽略<!--nextpage--> 并立即显示完整的帖子?