最近发现typecho程序时隔好几年的居然更新了,但是小程序代码似乎并没有办法使用,今天抽空看了一下,发现1.2版本取消了json和xml输出的接口,所以无法输出josn数据。

下面给大家提出一个适配方法,在原先的版本中是存在该接口的代码如下:

/**
     * 抛出ajax的回执信息
     *
     * @access public
     * @param string $message 消息体
     * @return void
     */
    public function throwXml($message)
{
        /** 设置http头信息 */
        $this->setContentType('text/xml');

        /** 构建消息体 */
        echo '<?xml version="1.0" encoding="' . $this->getCharset() . '"?>',
        '<response>',
        $this->_parseXml($message),
        '</response>';

        /** 终止后续输出 */
        exit;
    }

    /**
     * 抛出json回执信息
     *
     * @access public
     * @param mixed $message 消息体
     * @return void
     */
    public function throwJson($message)
{
        /** 设置http头信息 */
        $this->setContentType('application/json');

        echo json_encode($message);

        /** 终止后续输出 */
        exit;
    }

代码位置在var/Typecho/Response.php中,如果想要在1.2版本中使用插件,只需要将代码加入到1.2版本的该文件中就可以了,如下图:

其他配置方法就和之前的是一样的了,注意一定要关闭php7.2版本的display_errors报错功能,不然也不会成功(这个配置之前的配置教程中也存在)。

最后修改:2023 年 12 月 13 日
如果觉得我的文章对你有用,请随意赞赏