输出Typecho的所有链接,比如输出所有分类的链接之类的,刚好有这个小需求,于是立刻就想到了Sitemap
插件代码可以参考,发现其实现方式代码有点多,于是乎自己就想试试简单的方法,于是有了下面的内容。
输出所有分类的链接
原理就是用官方方法循环输出所有分类信息,然后单独将链接增加到数组里,当然也可以加别的信息,下面的其他内容方法打同小异将不再重复讲解
代码语言:javascript复制echo "";
$cateurl=array();
Typecho_Widget::widget('Widget_Metas_Category_List')->to($categories);
while($categories->next()){array_push($cateurl,$categories->permalink);}
print_r($cateurl);
echo "";
输出所有标签的链接
代码语言:javascript复制echo "";
$cateurl=array();
Typecho_Widget::widget('Widget_Metas_Tag_Cloud')->to($categories);
while($categories->next()){array_push($cateurl,$categories->permalink);}
print_r($cateurl);
echo "";
输出所有独立页面的链接
这里设置成隐藏的页面不会被输出哈
代码语言:javascript复制echo "";
$cateurl=array();
Typecho_Widget::widget('Widget_Contents_Page_List')->to($categories);
while($categories->next()){array_push($cateurl,$categories->permalink);}
print_r($cateurl);
echo "";
输出所有文章的链接
这里设置成隐藏的文章不会被输出哈,下方的999是想要输出的文章数量,填的只要超过自己的文章数量就能全部输出了
代码语言:javascript复制echo "";
$cateurl=array();
Typecho_Widget::widget('Widget_Contents_Post_Recent','pageSize=999')->to($categories);
while($categories->next()){array_push($cateurl,$categories->permalink);}
print_r($cateurl);
echo "";
输出所有日期归档的链接
代码语言:javascript复制echo "";
$cateurl=array();
Typecho_Widget::widget('Widget_Contents_Post_Date')->to($categories);
while($categories->next()){array_push($cateurl,$categories->permalink);}
print_r($cateurl);
echo "";
实际用途
可以在插件中使用,比如做个Sitemap
插件,或者做静态缓存插件,需要用到页面的地址也可以用这个方式。
linkCard('.post-content','0');