一言api相信大家都不陌生,但是怎么能在typecho中调用呢,今天就来给大家示范一下。
缘起于博客顶部,会显示博客的副标题,如果没有就是空的,那何不显示一下诗句呢?说干就干。
添加控制选项到 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 获取数据并在前端显示诗词。