Typecho调用指定分类文章列表
起因
近日,我再移植Company主题时,因为这个主题是面向公司的,首页有新闻资讯的输出。
我仔细阅读官方文档后发现近提供了如下信息(调用某一分类下的文章 - Typecho Docs):
比如想某地方调用mid=1那个分类的文章列表..怎么使用呢? 例如: 分类id=1 分类id=2 文章1.. 文章1.. 文章2.. 文章2.. 文章3.. 文章3.. 文章4.. 文章4..
你可以这样调用
<?php $this->widget('Widget_Archive@myCustomCategory', 'type=category', 'mid=1')->to($categoryPosts); ?>
然后操作$categoryPosts这个变量即可
其中出现说
然后操作$categoryPosts这个变量即可
相信看到这里某些想我一样的小白就迷糊了,怎么操作啊啊啊!
学习
我又阅读相关文档,最终总结了两种调用方式:
常规用法
通过widget方法初始化组件,并使用next()进行迭代。
$this->widget('Widget_Archive@myCustomCategory', 'type=category', 'mid=1')->to($categoryPosts);
while($categoryPosts->next()):
......
endwhile;
快捷用法
通过parse方法,简化常规用法中的代码
$this->widget('Widget_Archive@index', 'pageSize=6&type=category', 'mid=3')
->parse('<li><a href="{permalink}">{title}</a></li>');
后话
[hide]
哼哼,如果你是个伸手党,拿完代码就走,然后又胡乱套用是要报错的哦!
我在少有的文档和例子中得到一些信息:
1.Widget组件中的Widget_Archive@index里面的index是可以自行修改,以避免同一页面中该组件仅能调用一次的问题
2.后半部分'pageSize=6&type=category', 'mid=3',其中6是该分类列表输出几篇文章,3是输出mid为3的分类下的文章。也可自行把mid=3改成slug=test(输出缩略名为test的分类下的文章)
3.如果你想实现高级功能不建议使用parse方法简化代码,最后使用常规调用。
4.while中的代码是要循环输出的。举个栗子:<?php $this->widget('Widget_Archive@myCustomCategory', 'pageSize=5&type=category', 'mid=1')->to($myPosts); ?> <?php while($myPosts->next()): ?> <div class="233"> <span> <?php $myPosts->date('Y-m-d'); ?></span> <a href="<?php $myPosts->permalink() ?>"> <?php $myPosts->title() ?></a></div> <?php endwhile; ?>
这样应该可以理解咯? 循环中变量更多可用字段详见模板制作快速入门 - Typecho Docs也可以留言问我。
[/hide]
感谢
本文部分代码来自:
1.调用某一分类下的文章 - Typecho Docs
2.模板制作快速入门 - Typecho Docs
2.Typecho调用分类列表 - Typecho开发者中文网
不好意思啊,最近我的站都快发霉了! 垃圾评论一大堆,就算有邮件提醒我也不小心忽略了。我会调整一下垃圾评论的拦截设置,尽力避免类似于你的正常评论被淹没的现象。
接下来是针对你问题的回复:
灵活调用mid获取子分类数量
,你的问题比较模糊。不知道是子分类下的文章数量,还是某分类下的子分类数量,亦或是某分类下子分类的文章总数量,你可以参考一下本站另一篇文章:typecho统计当前分类和子分类文章总数。希望能对你有所帮助!如果有其他的问题,可继续留言询问哦!
最后,欢迎来访哦!
好用~