建站技巧

纯代码给WordPress文章添加分页和阅读全文

 2个月前 (03-28)     389  
文章目录

文章分页的功能大多数的 WordPress 主题都有,但是很少有“阅读全文”的功能,相关教程网上也有,这里分享我的改良版。

纯代码给WordPress文章添加分页和阅读全文

添加函数

复制下方代码到主题的 functions.php 文件里面

function io_link_pages() {  
    global $wp_query, $numpages; 
    if(isset( $wp_query->query_vars[ 'view' ] ) && $wp_query->query_vars[ 'view' ] === 'all'){ 
        echo '<div class="page-nav text-center my-3"><a href="' . get_permalink() . '"><span class="all">分页阅读</span></a></div>';
    } elseif ( 1 < $numpages ) {
        wp_link_pages(array('before' => '<div class="page-nav text-center my-3">', 'after' => '', 'next_or_number' => 'next', 'previouspagelink' => '<span><i class="iconfont icon-arrow-l"></i></span>', 'nextpagelink' => "")); 
        wp_link_pages(array('before' => '', 'after' => '', 'next_or_number' => 'number', 'link_before' =>'<span>', 'link_after'=>'</span>')); 
        wp_link_pages(array('before' => '', 'after' => '', 'next_or_number' => 'next', 'previouspagelink' => '', 'nextpagelink' => ' <span><i class="iconfont icon-arrow-r"></i></span>')); 
        echo ' <a href="' . get_pagenum_link( 1 ) . ( preg_match( '/\?/', get_pagenum_link( 1 ) ) ? '&' : '?' ) . 'view=all' . '"><span class="all">阅读全文</span></a></div>';
    }
}
add_filter( 'query_vars',  'wp_link_pages_all_parameter_queryvars'  );
add_action( 'the_post',  'wp_link_pages_all_the_post'  , 0 );
function wp_link_pages_all_parameter_queryvars( $queryvars ) {
    $queryvars[] = 'view';
    return( $queryvars );
}
function wp_link_pages_all_the_post( $post ) {
    global $pages, $multipage, $wp_query;
    if ( isset( $wp_query->query_vars[ 'view' ] ) && ( 'all' === $wp_query->query_vars[ 'view' ] ) ) {
        $multipage = true;
        $post->post_content = str_replace( '<!--nextpage-->', '', $post->post_content );
        $pages = array( $post->post_content );
    }
}

调用

到文章模板 single.php 文件的the_content()下方添加下面的代码调用就可以了。

<?php io_link_pages() ?>
版权声明:一为 发表于 2个月前 (03-28),共 1619 字。
转载请注明:纯代码给WordPress文章添加分页和阅读全文 | 一为忆

11 条评论

  • avatar

    女锟斤拷锟斤拷录 ( VIP 1 )

    回复

    我的代码能显示,可是左右多是一个块,不知道怎么解决。 wholenews.cn/news/world/1446.html/2这个是网站

  • avatar

    y ( VIP 1 )

    回复

    你好,按照你说得,第一段代码放到了functions.php内最底部,第二段也放在了那个下边:

    可是文章不显示分页和阅读全文,是我哪里操作的不对么?请指教,谢谢!

    • avatar

      y ( VIP 1 )

      回复

      @y 已经搞明白了,只是古腾堡编辑器发布的文章不显示红色的背景,只显示页码和“阅读全文”文字。

  • avatar

    Swarm ( VIP 1 )

    回复

    好酷的博客!

    • avatar
      回复

      @Swarm 谢谢 :idea:

      • avatar

        Swarm413 ( VIP 1 )

        回复

        @一为 大佬,能向你询问一下思路吗?比如如果我的博客网站有个打赏功能,怎么样做到别人打赏我之后网页跳转到感谢网页呢?有什么事件吗?能给个思路吗

      • avatar

        Swarm413 ( VIP 1 )

        回复

        @一为 额 我的意思是当别人刷过支付宝或者微信二维码之后,我该怎么让网页及时跳转到感谢页面呢?

  • avatar

    ken5156 ( VIP 1 )

    回复

    这个代码高亮是纯代码还是插件?能分享?

    • avatar
      回复

      @ken5156 刚刚发的插件 :wink: https://www.iowen.cn/wdmglcjich/

2020/5/1 12:50
通勤一个月,劳动节继续加班! 详情