Typecho 主题配置参数扩展和使用
...大约 2 分钟
上次设置的B站追番列表,但是最近它的 cookie
的值失效了,观看进度都变成了 尚未观看
,为了方便的改 cookie
的值,我想在后台管理里面增加一个配置项,这样我通过后台就能直接更改参数,不用再手动改代码后发布主题。PS:为了方便用我主题的小伙伴(虽然我觉得也没有人会用o(╥﹏╥)o),多加了一个用户 ID
的配置。
增加扩展参数
在主题下面找到 functions.php
文件,我们可以看到文件中有一个主要的函数 themeConfig
,里面的内容大致是:
function themeConfig($form) {
$logoUrl = new Typecho_Widget_Helper_Form_Element_Text('logoUrl', NULL, NULL, _t('站点 LOGO 地址'), _t('在这里填入一个图片 URL 地址, 以在网站标题前加上一个 LOGO'));
$form->addInput($logoUrl);
//后面的省略
}
这里面的 $logoUrl
就是我们在主题的外观设置中的默认的第一项,与之类似的,我们想要增加一个一样的表单项,只需要把这个复制一份,换成我们定义的名字,就可以增加一个表单项啦,比如:
$bilibiliCookie = new Typecho_Widget_Helper_Form_Element_Text('bilibiliCookie', NULL, NULL, _t('Bilibili Cookie SESSDATA:'), _t('追番列表需要设置的cookie值'));
$form->addInput($bilibiliCookie);
$bilibiliId = new Typecho_Widget_Helper_Form_Element_Text('bilibiliId', NULL, NULL, _t('Bilibili ID:'), _t('追番列表需要设置的Bilibili用户ID'));
$form->addInput($bilibiliId);
添加好之后,保存,去我们后台管理系统里面,控制台-->主题-->外观设置
,就会发现多了一个输入框出来,那么我们的初步目标就达成啦,接下来就是想办法在追番列表这个页面中取到这两个值
取值
进入到 sub-anime-list.php
文件中(这是我定义的追番列表页面的模板),使用如下代码:
$sessData = $this->options->bilibiliCookie;
$vmid = $this->options->bilibiliId;
就可以取到这两个值啦,然后在需要的地方把这两个变量替换上,并与之前后的字符串使用 .
拼接上即可,例如:
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: SESSDATA=" . $sessData . "\r\n"
)
);
这样我们回到页面刷新就可以看到啦
参考文章
typecho使用 themeFileds 增加自定义字段和主题设置 主要参考了这篇文章,感谢大佬的文章,对我很有帮助