利用WordPrss自带REST API在外站列出文章实例

2018年8月1日16:58:53 4 5,635

简单介绍REST API

WordPress REST API提供了一组易于使用的HTTP端点,使您可以以简单的JSON格式访问站点的数据,包括用户,帖子,分类等。检索或更新数据就像发送HTTP请求一样简单。

想要获取您网站的帖子?只需发送GET请求即可/wp-json/wp/v2/posts。更新ID为4的用户?发送POST请求/wp-json/wp/v2/users/4。获取搜索字词“awesome”的所有帖子?GET /wp-json/wp/v2/posts?search=awesome。就这么简单。

详细请看http://v2.wp-api.org/

简单实例

实例教程开始前,请保证您的主题或者插件中没有代码去除了REST API功能,如果有,您可以咨询主题的制作人或者自行百度[aru_42]

1.新建JS文件,将下面代码复制进去(也可以直接用<script>...</script>框起来调用,注释了的地方可以按自己的需求更改

$('.menu a').click(function(){
    target = $(this).attr('goto');
    switchTo(target);
    $('.menu li a').each(function(){
        $(this).removeClass('active');
    });
    $(this).addClass('active');
});

function switchTo(target){
    $('.right section').each(function () {
        $(this).removeClass('active');
    });
    $(target).addClass('active');
}

function getAchives(){
    t = ``;
    $.ajax({
        type:"GET",
        url:"https://www.liues.cn/wp-json/wp/v2/posts?per_page=8&page=1", //这里的网站改成你自己的站点
        dataType:"json",
        success:function(json){
            for(var i = 0;i < json.length;i++){
                title = json[i].title.rendered;
                link = json[i].link;
                time = new Date(json[i].date).Format("yyyy-MM-dd");
                t += `<li><a href="${link}" target="_blank">${title} <span class="meta">/ ${time}</span></a></li>`; //这里可以根据需求自己更改样式
                $('.archive-list').html(t);
            }
        }
    })
}

// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
// 例子: 
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
Date.prototype.Format = function(fmt){ //author: meizz 
    var o = {
        "M+": this.getMonth() + 1, //月份 
        "d+": this.getDate(), //日 
        "h+": this.getHours(), //小时 
        "m+": this.getMinutes(), //分 
        "s+": this.getSeconds(), //秒 
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
        "S": this.getMilliseconds() //毫秒 
    };
    if(/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1,(this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for(var k in o)
        if(new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

$(document).ready(function(){
    getAchives();
    setTimeout(function(){$(".loading").hide();},1500);
});

2.在你的网站上调用这个JS文件

(框起来的直接跳过这一步[aru_51])

3.在你的网站中调用JQuery

<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

上面的为BootCDN的CDN,BootCDN ban 了.cc 以及.top 域名,如果为以上域名的请自行下载放本地或者调用其他CDN的js

4.在网站合适的地方加上以下代码

<ul class="archive-list">
   <li>Loading...</li>
</ul>

效果

如果您完成了所有步骤,那么您将看到和下面图片一样的效果[aru_41]

如果您想要将您的网页美化,那么请自行修改,我的个人主页站izstar.cn就是一个美化的例子[aru_31]

最后

如果您想自定义其他利用REST API实现的实例,请自行脑洞!可以参照官方的介绍自定义:http://v2.wp-api.org/

好了,如果文章中有什么错误,欢迎在评论中指正![aru_46]

weinxin
滑稽社
流星博客建立的官方交流群,包含技术交流|随意闲聊|好友扩列|热心管理在一体的技术群

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:4   其中:访客  3   博主  1

    • avatar 梁兴健 2

      太强了你[aru_47]

        • avatar Liues Admin

          @梁兴健 不不不,我就是一个菜鸡[小纠结]

        • avatar 杨景文 3

          没想到,流星?还是个技术咖,厉害厉害。

          • avatar 青山 4

            看不懂