爱好者 > Typecho > Typecho杂文 > 让 typecho 生成JSON 输出

让 typecho 生成JSON 输出

作者:佚名 来源:爱好者 时间:2017-06-16

关键代码出处

晴天博客:http://www.qt06.com/thread-3500.htm

修改说明
因为源代码输出的文章,不能一次性输出全部文章,而且会把置顶文章当成第一篇文章输出了。
所以我修改了下,让其一次性输出全部文章,也可以通过修改代码钟的数字进行可控制数量的输出

最终代码
将下面代码添加到 typecho 头部模版的开头即可实现简单的 JSON 输出
头部模版一般位于
usr/themes/default/header.php
可以查找到:
<!DOCTYPE html>
在这一行的前面添加下面的代码:

<?php
if (stripos($this->request->getRequestUri(), 'json')) {
    $arr = array();
$this->widget('Widget_Contents_Post_Recent', 'pageSize=10000')->to($archives);
    while ($archives->next()) {
        $a = array('title' => $archives->title, 'date' => $archives->date->format('Y-m-d'), 'content' => $archives->content, 'tags' => $archives->tags,'permalink' => $archives->permalink,);
        $arr[] = $a;
    }
    $this->response->throwJson(array("servererror" => "", "status" => 1, "message" => $arr));
}
?>
添加完访问http://你的域名/?json即可看到效果

补充说明
放首页感觉影响效率,其实改代码放到独立页面模板上边也可以,比如新建个独立页面模板专门用来生成json,这样就不会影响了。
还有就是代码钟的10000可以改成自己实际需要文章的数量,写10000只是为了方便输出全部文章。