TYPECHO WIKI
每一个作品都值得被记录

Typecho 非插件实现友情链接页面

Typecho维基君Typecho教程 • 2339次浏览 • 发布 2018-05-18 • 更新 2018-05-18

通常友情链接我都是写死的,但是制作的主题因为要公开给大家用,所以很多童鞋表示写死了不方便修改,于是花了点时间折腾了一下,方便大家使用。首先使用该代码之前,请先确认你的页面里的友情链接最终输出格式是这样的:

<ul>
<li><a href="https://www.baidu.com">baidu</a></li>
<li><a href="https://www.baidu.com">baidu</a></li>
<li><a href="https://www.baidu.com">baidu</a></li>
<li><a href="https://www.baidu.com">baidu</a></li>
<li><a href="https://www.baidu.com">baidu</a></li>
<li><a href="https://www.baidu.com">baidu</a></li>
</ul>

然后,在主题目录下的 functions.php 文件里新增一下函数:

function links($slug)
{
    $db = Typecho_Db::get();
    $Contents = Typecho_Widget::widget('Widget_Abstract_Contents');
    $value = $db->fetchRow($db->select()
            ->from('table.contents')
            ->where('table.contents.status = ?', 'publish')
            ->where('table.contents.type = ?', 'page')
            ->where('table.contents.slug = ?', $slug)
            ->where('table.contents.password IS NULL')
            ->limit(1));
    $value = $Contents->filter($value);
    if (0 === strpos($value['text'], '<!--markdown-->')) {
        $value['isMarkdown'] = 0;
    } else {
        $value['isMarkdown'] = 1;
    }
    if ($value['isMarkdown'] == 1) {
        $text = substr($value['text'], 15);
        $text = $Contents->markdown($text);
    } else {
        $text = $Contents->autoP($value['text']);
    }

    $search = '/<ul>(.*?)<\/ul>/is';
    preg_match_all($search, $text, $matches);
    $result = '';
    foreach ($matches[1] as $v) {
        $result .= $v;
    }
    //以下三行稍微处理了一下,如果不需要删除就可以
    $result = str_replace('<li>', '', $result);
    $result = str_replace('</li>', '<br/>', $result);
    $result = rtrim($result, '<br/>');
    echo $result;
}

在需要输出友情链接的地方调用代码为:<?php links('links'); ?> 注意这里的 links 为你的页面的 slug 名称。

当然如果你懒得折腾也可以使用插件来处理,Typecho 下有两款友情链接插件,请在本站直接搜索关键词友情链接来获取。

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,Typecho.Wiki所有文章均包含本声明。
厂商投放

【腾讯云】🎉五一云上盛惠!云服务器99元/月续费同价!

腾讯云五一劳动节海量产品 · 轻松上云!云服务器首年1.8折起,买1年送3个月!超值优惠,性能稳定,让您的云端之旅更加畅享。快来腾讯云选购吧!

广告
添加新评论 »