这几天实在无聊,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 = Typecho_Widget::widget('Widget_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>

链接功能使用效果可以预览本站的链接页面。

打完收工

注意

由于链接信息储存在主题设置内,而主题设置在切换主题后会被自动清空,
所以提醒大家在切换主题前别忘记备份链接信息,丢了可别怪我🤣