为Typecho主题集成链接功能(免插件实现友情链接功能)
这几天实在无聊,Initial主题也基本完善了,不知道该整些什么了,最后琢磨着把链接功能集成进主题吧(之前用的Links插件)。作为初学小白,技术low得很,做不了那么高深,最后也算是简简单单够用了😀
修改functions.php
在函数themeConfig()
内合适位置添加以下内容(为主题设置添加链接内容输入框)
$Links = new Typecho_Widget_Helper_Form_Element_Textarea('Links', NULL, NULL, _t('链接列表(注意:切换主题会被清空,注意备份!)'), _t('按照格式输入链接信息,格式:<br><strong>链接名称(必须),链接地址(必须),链接描述,链接分类</strong><br>不同信息之间用英文逗号“,”分隔,例如:<br><strong>OFFODD,http://www.offodd.com/,JIElive的博客 | 有点不同,Myself</strong><br>若中间有暂时不想填的信息,请留空,例如暂时不想填写链接描述:<br><strong>OFFODD,http://www.offodd.com/,,Myself</strong><br>多个链接换行即可,一行一个'));
$form->addInput($Links);
然后在函数themeConfig()
外,比如最底部,添加以下内容
function Links($sorts = NULL) {
$options = Helper::options();
$link = NULL;
if ($options->Links) {
$list = explode("\r\n", $options->Links);
foreach ($list as $val) {
list($name, $url, $description, $sort) = explode(",", $val);
if ($sorts) {
$arr = explode(",", $sorts);
if ($sort && in_array($sort, $arr)) {
$link .= $url ? '<li><a href="'.$url.'" title="'.$description.'" target="_blank">'.$name.'</a></li>' : '<li><a title="'.$description.'"><del>'.$name.'</del></a></li>';
}
} else {
$link .= $url ? '<li><a href="'.$url.'" title="'.$description.'" target="_blank">'.$name.'</a></li>' : '<li><a title="'.$description.'"><del>'.$name.'</del></a></li>';
}
}
}
echo $link ? $link : '<li>暂无链接</li>';
}
后台新增链接方式
按照格式输入链接信息,链接输入格式:
链接名称*,
链接地址*,
链接描述,
链接分类不同信息之间用英文逗号“
,
”分隔,例如:
OFFODD,
http://www.offodd.com/,
JIElive的博客 | 有点不同,
Myself若中间有暂时不想填的信息,请留空,例如暂时不想填写链接描述:
OFFODD,
http://www.offodd.com/,,
Myself若结尾有暂时不想填的信息,无需逗号,可直接留空,例如暂时不想填写链接分类:
OFFODD,
http://www.offodd.com/,
JIElive的博客 | 有点不同多个链接换行即可,一行一个
11月7日更新:若 链接地址 留空,则自动添加
<del>
标签,表示此链接已删除
调用
最后在需要输出链接的地方调用<?php Links(); ?>
即可。
函数的原型为Links($sorts)
其中$sorts
参数为链接分类名称,默认显示全部链接,若要显示指定分类的链接,将其替换为链接分类名称即可。
例如要显示分类为Friendlinks
的链接,则调用<?php Links("Friendlinks"); ?>
即可,支持调用多个分类,分类名之间用英文逗号“,
”分隔。
函数的输出内容为
<li><a href="{url}" title="{description}" target="_blank">{name}</a></li>
链接功能使用效果可以预览本站的链接页面。
打完收工
注意
由于链接信息储存在主题设置内,而主题设置在切换主题后会被自动清空,
所以提醒大家在切换主题前别忘记备份链接信息,丢了可别怪我🤣
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
发现一只大佬
发现一个小问题https://ww2.sinaimg.cn/large/005BYqpggy1fykav25s2rj30co03b0sj.jpg,大佬能不能帮看下
这个之前也有一个朋友有这个问题,差不多知道原因了,能提供一下你的系统环境和版本吗?下次更新尽量修复这个
用的景安的美国空间,只知道是Linux
一看就是大佬~
不敢当,刚接触代码而已,纯属爱好,真正的大佬看到我的代码估计会无语的🤣
前来学习(^^)
😉
其实新建个page,把链接信息按格式写到page正文中
然后在要显示链接的页面正则匹配这个page内容中的链接信息
再显示出来,这样是否可行,这样的话就不用担心切换主题丢失链接的参数了
这个我准备整到主题里,借用一下,感谢感谢!~
坐等发布新主题。