Typecho1.0实现友情链接
背景
实际上并不局限于友情链接,还可以做成置顶展示之类的。
创建独立页面
以我的为例,独立页面网址是http://www.polarxiong.com/project.html
,其中的project
是我自己定义的,后面修改代码时记得这个URL。
内容如下:
- [全国火车换乘查询系统][1]
- [南京大学校园网自动登录脚本][2]
[1]:http://huoche.polarxiong.com/
[2]:http://www.polarxiong.com/archives/Python-%E5%8D%97%E4%BA%AC%E5%A4%A7%E5%AD%A6%E6%A0%A1%E5%9B%AD%E7%BD%91%E8%87%AA%E5%8A%A8%E7%99%BB%E5%BD%95%E8%84%9A%E6%9C%AC-V2-0.html
链接数目不限,但必须是超级链接格式。
编辑functions.php文件
在typecho文件目录下usr/themes/THE_THEME_YOU_USE/functions.php
在此文件中加入
function PageToLinks($slug = 'links')
{
$db = Typecho_Db::get();
$contents = $db->fetchObject($db->select('text')->from('table.contents')
->where('slug = ?', $slug)->limit(1));
if (!$contents) {
return;
}
$text = $contents->text;
$titles = $db->fetchObject($db->select('title')->from('table.contents')
->where('slug = ?', $slug)->limit(1));
$title = $titles->title;
if (substr($text, -1) != ' ') {
$text = $text.' ';
}
preg_match_all("/\[(.*?)\]\[(\d)\]/", $text, $r);
echo "<h3 class='widget-title'>".$title.'</h3>';
echo "<ul class='widget-list'>";
foreach ($r[1] as $key => $value) {
$num = $r[2][$key];
preg_match_all("/\[$num\]:\s(.*?)\s/", $text, $urls);
$href = '<a href='.$urls[1][0].'>'.$value.'</a>';
echo '<li>'.$href.'</li>';
}
echo '</ul>';
保存并关闭
编辑sidebar.php
在typecho文件目录下usr/themes/THE_THEME_YOU_USE/sidebar.php
在合适位置插入如下代码:
<section class="widget">
<?php PageToLinks('project'); ?>
</section>
将上面代码中的project
修改为你的独立页面名字
保存并关闭
完成
上述文件修改完毕,即独立页面编辑完毕后,刷新首页就能看到侧边栏中显示的内容了。
需要修改内容只需要修改独立页面,而不再需要修改代码。
需要在侧边栏中增加新的内容,只需要重复如上编辑sidebar.php即可。
000jdiej的得加的的额的呃