HJZ的博客
[MDUI2333主题魔改]-1一言功能
HJZ
2025-07-31

前言

一言api各位应该很熟悉了,但是怎么在MDUI2333这一主题里使用?官方文档并未涉猎。

MDUI2333底部左侧,会显示哔哩哔哩、GitHub、知乎链接,下面是空的,所以说改就改

有可能会影响访问速度,所以后台留一个选项。

准备

一个搭载MDUI2333主题的typecho程序,以及一双手,一双眼

方法

添加控制选项到 主题 后台

首先,添加一个选项到 MDUI2333 的设置页面,让用户选择是否开启一言.
在主题的 functions.php 文件中这行代码后(当然可以放在前面)

$config=new Typecho_Widget_Helper_Form_Element_Textarea('pjaxreload',NULL,NULL,_t('附加PJAX重载'),_t('这里可以写入自定义的PJAX重载代码'));

添加以下代码来注册一个新的设置选项:

form->addInput($config);
        $config=new Typecho_Widget_Helper_Form_Element_Select('yiyan',array(
        'true' => '启用',
        'false' => '不启用'
    ),'false',_t('每日一言'),_t('在网站左下角显示每日一言'));

获取一言数据

使用 cURL 获取 一言API 数据并解析其中的 hitokoto 字段。在 functions.php 文件尾部(好辨别,出了问题也好找),添加以下函数来获取 API 数据:

function getHitokoto() {
    $api_url = "https://v1.hitokoto.cn/";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $api_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($ch);
    curl_close($ch);
    $data = json_decode($response, true);
    return isset($data['hitokoto']) ? $data['hitokoto'] : '';
}

前端显示诗词

最后,检查用户是否开启了一言选项,如果开启,则在博客前端显示获取的。在 footer.php 文件(或其他适当的位置),添加以下代码:

<?php if ($this->options->yiyan == 'true'): ?>
    <div id="hitokoto" style="text-align: center; margin-top: 10px;">
        <?php echo getHitokoto(); ?>
    </div>
<?php endif; ?>

大功告成!

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 CN协议 许可协议。转载请注明出处!