typecho 使用一言api [复制链接]

帖子链接已复制到剪贴板
湘铭呀 (UID: 1890) 5月前
帖子已经有人评论啦,不支持删除!

457 0
一言api相信大家都不陌生,但是怎么能在typecho中调用呢,今天就来给大家示范一下。
缘起于博客顶部,会显示博客的副标题,如果没有就是空的,那何不显示一下诗句呢?说干就干。

2024-07-04T02:07:08.webp

添加控制选项到 Typecho 后台:

首先,添加一个选项到 Typecho 的设置页面,让用户选择是否开启顶部一言诗词。

在主题的 functions.php 文件中,添加以下代码来注册一个新的设置选项:

function themeConfig($form) {
    $hitokoto = new Typecho_Widget_Helper_Form_Element_Radio('hitokoto', 
        array('0' => '关闭', '1' => '开启'), '0', _t('顶部一言诗词'), _t('选择是否在博客顶部显示一言诗词'));
    $form->addInput($hitokoto);
}

获取一言诗词数据:

然后,使用 cURL 获取 API 数据并解析其中的 hitokoto 字段。在 functions.php 文件中,添加以下函数来获取 API 数据:

function getHitokoto() {
    $api_url = "https://v1.hitokoto.cn/?c=i";
    $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'] : '';
}

在前端显示诗词:

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

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

通过以上步骤,你可以实现一个在 Typecho 后台控制是否在博客顶部显示一言诗词的功能。如果用户选择开启,那么会使用 https://v1.hitokoto.cn/?c=i API 获取数据并在前端显示诗词。

这家伙太懒了,什么也没留下。
已有评论 (0)
提示:您必须 登录 才能查看此内容。
创建新帖
广告推广点击空位自助购买