输出Typecho的所有链接,比如输出所有分类的链接之类的,刚好有这个小需求,于是立刻就想到了Sitemap插件代码可以参考,发现其实现方式代码有点多,于是乎自己就想试试简单的方法,于是有了下面的内容。

输出所有分类的链接

原理就是用官方方法循环输出所有分类信息,然后单独将链接增加到数组里,当然也可以加别的信息,下面的其他内容方法打同小异将不再重复讲解

echo "<pre>";
$cateurl=array();
Typecho_Widget::widget('Widget_Metas_Category_List')->to($categories);
while($categories->next()){array_push($cateurl,$categories->permalink);}
print_r($cateurl);
echo "</pre>";

输出所有标签的链接

echo "<pre>";
$cateurl=array();
Typecho_Widget::widget('Widget_Metas_Tag_Cloud')->to($categories);
while($categories->next()){array_push($cateurl,$categories->permalink);}
print_r($cateurl);
echo "</pre>";

输出所有独立页面的链接

这里设置成隐藏的页面不会被输出哈

echo "<pre>";
$cateurl=array();
Typecho_Widget::widget('Widget_Contents_Page_List')->to($categories);
while($categories->next()){array_push($cateurl,$categories->permalink);}
print_r($cateurl);
echo "</pre>";

输出所有文章的链接

这里设置成隐藏的文章不会被输出哈,下方的999是想要输出的文章数量,填的只要超过自己的文章数量就能全部输出了

echo "<pre>";
$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 "</pre>";

输出所有日期归档的链接

echo "<pre>";
$cateurl=array();
Typecho_Widget::widget('Widget_Contents_Post_Date')->to($categories);
while($categories->next()){array_push($cateurl,$categories->permalink);}
print_r($cateurl);
echo "</pre>";

实际用途

可以在插件中使用,比如做个Sitemap插件,或者做静态缓存插件,需要用到页面的地址也可以用这个方式。

版权属于:泽泽社长
本文链接:https://blog.zezeshe.com/archives/output-all-links-typecho.html
本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!