开发者社区> 问答> 正文

WordPress 跨域请求 JSON 并保存在本地的方法

我在给一个 WordPress 主题添加一个功能:在首页显示当地的 PM2.5 指数。使用了这个第三方服务.

GET 方法可以直接请求到 JSON ,但是 请求次数有限制 (比如一小时最多 5 次),所以我想用 PHP 请求到我要的 JSON,然后保存在服务器上,这样用户访问页面时,直接从我的服务器上请求数据即可。

现在我有这两种思路:

我一开始的思路是,用 PHP 请求到 JSON 后,把 JSON 文件保存到 wp-content/uploads 目录(想法类似于上传文件),找到了 wp_handle_upload 这个函数(和一些零散的资料Link 1, Link 2),但是一直没弄明白怎么用,希望有用过的朋友能指点一下。

后来又想到一个办法,在主题目录里面预先放一个 JSON 文件,然后用 PHP 请求第三方的数据之后再复写这个 JSON 文件。我想这样就避开了 “ 上传 ” 这个动作,直接操作一个 JSON 文件即可。

请问上面那一种方式更可行?如果可行,具体需要用到哪些技术?我后端知识浅薄,希望大家不吝赐教,先多谢了!

展开
收起
落地花开啦 2016-06-16 17:26:19 2433 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    就一个小功能而已,不和WordPress扯上关系也完全么问题呀。直接写一个PHP文件,将抓取过来的JSON文件放到wp-content/uploads目录内,如果文件存在,则直接读取,不存在则进行抓取工作。文件的文件名可以采用“时间地点”的格式。至于主题里头直接就用file_get_contents获取就OK了。给个示例代码:

    <?php
        $name = "20140129Beijing";
        $file = './wp-content/uploads/'.$name.'.json';
        $api_url = "";
        if(file_exist($file)) {
            echo file_get_contents($file);
        } else {
            $json = file_get_contents($api_url);
            file_put_contents($json, $file);
            echo $json;
        }
    ?>
    2019-07-17 19:41:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载