代码实现WordPress主题添加“阅读全文”功能

WordPress经典编辑器Tinymce中虽然有分页功能,但是每一次写文章的时候难免会有点痛苦,需要手动添加<!--nextpage-->分页符。很多主题甚至都没有在tinymce编辑器扩展该功能,所以很少能够在一些博客中看到下一页的按钮。

在网上的教程中也有能够自动实现多少字符自动添加“下一页”的功能,不过大多数方法都不适用于新手同学。

有时候自己写的文章太长的时候,一次性将这些数据加载到前端,对于服务器压力还是蛮大,所以今天小编在“一为忆”中找到一个不错的方法。根据作者的原话是,该方法已经在他的博客中使用,并且也经过一些优化。

对于这里需要提醒一下新手同学,对于一篇文章中有多个分页以后,会造成单篇文章被收录多个分页的可能性,因为在浏览器的rul中会以"https://wordpressworlds.com/tinymce_bian_ji_qi_gao_ji_gong_neng_kuo_zhan.html/2收录。个人来说,对于这个也不算什么大事,该方法还有优化的空间。

方法解释

本次分享的方法功能可以适当的将一篇较长的文章分成多个分页,展示的字样为“分页阅读”\“阅读全文”,理论上适用所有的WordPress主题,使用前记得斟酌一下哈。

将以下代码粘贴到您WordPress主题中的funtions.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 );
    }
}

代码添加到funtions.php当中后,还需要将这个功能调用出来,这里涉及到WordPress调用钩子“”,新手同学无需理会。往下看即可。
将以下代码粘贴到您主题的文章模板, single.php的the_content()下面即可。

<?php io_link_pages() ?>

人已赞赏
WordPress功能扩展代码

禁用WordPress 5.5版本 Sitemap.xml网站地图

2020-9-8 15:43:59

WordPress功能扩展代码WordPress功能扩展教程

代码实现WordPress网站之间共享用户数据(附原理)

2020-9-19 19:57:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索