首页 利用 WordPress REST API 给 WordPress 做一个归档页面吧

利用 WordPress REST API 给 WordPress 做一个归档页面吧

chenmo 2019-9-8 0 484

代码

WordPress REST API 默认以 date (文章发布日期) 来排序文章输出,所以可以遍历全部文章,判断上下篇发布年份来按照年份归档文章


//获取文章列表
            axios.get('https://www.ouorz.com/wp-json/wp/v2/posts?per_page='+window.post_count) //默认以发布时间排序
             .then(response => {
                 this.posts = response.data
             })
             .then(() => {
                 var k = -1;
                 var i = 0;
                 for(i=0;i<(this.posts).length;i++){ //遍历所有文章
                     if( ((this.posts[i].date.split('T'))[0].split('-'))[0] !== this.last_year ){ //当前文章发布年与上一篇不同
                         this.posts_array[k += 1] = []; //初始化数组
                         this.posts_array[k]['posts'] = []; //初始化 posts 数组
                         this.posts_array[k]['year'] = parseInt(((this.posts[i].date.split('T'))[0].split('-'))[0]); //增加年份
                         this.posts_array[k]['posts'][(this.posts_array[k]['posts']).length] = this.posts[i]; //增加文章
                         this.last_year = ((this.posts[i].date.split('T'))[0].split('-'))[0]; //赋值当前文章发布年份
                     }else{ //发布年份与上一篇相同
                        this.posts_array[k]['posts'][(this.posts_array[k]['posts']).length] = this.posts[i]; //增加文章
                     }
                 }
                 this.loading = false;
            })

查询了 WordPress REST API 文档之后,发现每次请求的文章总数( 也就是 per_page 参数 )不可以超过 100,但是归档页面理应展示全部文章,于是需要在 function.php 增加以下钩子和函数拓宽这个限制

https://github.com/WP-API/WP-API/issues/2914

add_filter( 'rest_post_collection_params', 'my_prefix_change_post_per_page', 10, 1 );

function my_prefix_change_post_per_page( $params ) {
    if ( isset( $params['per_page'] ) ) {
        $count_posts = wp_count_posts();
        $params['per_page']['maximum'] = $count_posts->publish; //增加限制到当前文章总数
    }
    return $params;
}


#wordpress##页面##归档##REST##API#

免责声明:本文仅代表作者个人观点,与本网站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
作者: chenmo 本文最后编辑于2019-9-8 08:48:57
chenmo

一个爱玩电脑,却又不沉迷游戏;喜欢网页设计,却又能力不足。喜欢网上到处灌,关注科技类新闻,寻搜有价值的网站。喜欢美剧,又喜爱电影,可以很宅,很宅,却又爱好户外骑行运动,喜欢接近大自然的心声。

作者的微博

发表评论: