创建typecho文章链接列表页面

警告
本文最后更新于 2022-06-10,文中内容可能已过时。

之前emlog和wordpress都可以直接使用插件来实现文章列表页面,但是typecho并没有这个功能,这个和sitemap是不一样的。


页面效果

这个用处是什么?

也许有人会问这个有什么用,都有sitemap了,这个是干嘛的。

首先sitemap的格式是这样的,主要就是表明了文章的链接、更新时间等信息,在百度后台、谷歌后台都可以提交,等着搜索引擎来抓取。

而搜索引擎还有一个功能是自己主动提交。提交的格式就是一行一个链接,或者一行一个链接的文件。这个列表的链接就是为了做这个用的。

制作模板页面

typecho在后台可以根据模板创建自定义页面,这里就是创建一个自定义模板,里面的功能就是在数据库中找出所有的文章链接并且提取输出出来,新建一个文件URLLinks.php,内容写以下内容。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php 
/**
 * 网站链接列表
 * 
 * @package custom 
 * 
 */
?>
    <?php 
        $db = Typecho_Db::get();
        $options = Typecho_Widget::widget('Widget_Options');
        $posts= $db->fetchAll($db->select()->from('table.contents')
                ->where('table.contents.status = ?', 'publish')
                ->order('table.contents.created', Typecho_Db::SORT_DESC));
        foreach($posts as $p)
        {
            /** 取出所有分类 */
            $p['categories'] = $db->fetchAll($db
            ->select()->from('table.metas')
            ->join('table.relationships', 'table.relationships.mid = table.metas.mid')
            ->where('table.relationships.cid = ?', $p['cid'])
            ->where('table.metas.type = ?', 'category')
            ->order('table.metas.order', Typecho_Db::SORT_ASC));

            /** 取出第一个分类作为slug条件 */
            $p['category'] = current(Typecho_Common::arrayFlatten($p['categories'], 'slug'));
            //去掉附件
            $type = $p['type'];
            if($type == "post"){
                $routeExists = (NULL != Typecho_Router::get($type));
                $pathinfo = $routeExists ? Typecho_Router::url($type, $p) : '#';
                $permalink = Typecho_Common::url($pathinfo, $options->index);
                echo "<a href=\"".$permalink."\">".$permalink."</a><br/>";
            }
        }
    ?>

将文件上传到模板的根目录,然后去后台新建独立页面,在自定义模板中选择“URLLinks”这个模板就可以了

当然这个创建出来的页面就是单纯的链接页面,为了更加好看,我们可以在这个页面的基础上完善下,当然不是必须的,如果想需要知道,可以往下看。

链接提交到搜索引擎

通过模板创建好对应的页面之后,就可以访问那个页面了,那个页面的内容就是所有的链接列表。这时候就可以复制这些链接去搜索引擎的后台提交了,比如百度。去百度的搜索资源平台:http://ziyuan.baidu.com/,验证完网站的所有权之后,有一个链接提交的功能。

后台提交

如果你是基础使用,那么可以将这些链接直接粘贴到提交框,然后去提交就行了。

模板下载

这是我为Yodu主题适配的模板下载
  传送门

Buy me a coffee~
支付宝
微信
0%