typecho文章轮播代码
给自己Typecho加上一个焦点图轮播可能瓶颈主要在图片,因为其它地方和我们调用的列表没有任何区别。
让typecho可以调文章中的第一张图或者附件图片
function img_postthumb($cid) {//by minirizhi.com
$db = Typecho_Db::get();
$rs = $db->fetchRow($db->select('table.contents.text')
->from('table.contents')
->where('table.contents.cid=?', $cid)
->order('table.contents.cid', Typecho_Db::SORT_ASC)
->limit(1));
preg_match_all("//<img.*?src/=/"(.*?)/"[^>]*>/i", $rs['text'], $thumbUrl); //通过正则式获取图片地址
$img_src = $thumbUrl[1][0]; //将赋值给img_src
$img_counter = count($thumbUrl[0]); //一个src地址的计数器
switch ($img_counter > 0) {
case $allPics = 1:
echo $img_src; //当找到一个src地址的时候,输出缩略图
break;
default:
echo ""; //没找到(默认情况下),不输出任何内容
};
}
请添加到你模版文件夹中的【functions.php】文件中,直接往文件后面空白处插。
让typecho单独调用一个分类或者标签的文章列表
<ul>
<?php $this->widget('Widget_Archive@indexfocus', 'pageSize=6&type=tag', 'slug=focus')->to($indexfocus); ?><?php while($indexfocus->next()): ?>
<li><a href="<?php $indexfocus->permalink(); ?>" target="_blank"><img src="<?php echo img_postthumb($indexfocus->cid); ?>" alt="<?php $indexfocus->title() ?>" /><strong><?php $indexfocus->title() ?></strong></a></li>
<?php endwhile; ?>
</ul>
这里用到的是标签,如果弄个幻灯片还创建个分类有点小题大作。
具体方法:typecho后台标签中添加一个标签【名称】可以是幻灯片也可以是焦点图,【缩略名】必须填focus(当然也可以填其它的但是要记得修改上面代码slug的值),然后编辑需要在博客展示焦点图轮播的文章【标签】写上刚才设置的标签名称。
参数解读:@indexfocus 作为标记可以随意修改,pageSize=6 其中6代表输出最新6条,type=tag 调用标签里的内容,slug=focus代表标签中缩略名为focus的内容。
后台标签添加好,function.php文件修改好,然后代码片段放到你模板里焦点图轮换位置即可。
- 上一篇: typecho随机颜色标签云
- 下一篇: Typecho添加归档页面