typecho判断字段中是否包含指定值,实现多样式文章列表

本文阅读 2 分钟
广告

这是在制作博客模板的时候遇到的问题,需要对指定的类型下文章在列表中单独定义样式,博客现在列表里面的多图显示和焦点大图显示就是这么做到的。一开始的之后是直接判断分类的名称是否等于指定值,但是出现了比较严重的问题,因为typecho是可以设置多分类的,最终产生的字符串压根就不止一个,研究了几天后发现了typecho自带的stristr方法,可以判断字符串中是否有指定值,并不区分大小写。
所以可以看下我目前的文章列表循环写法:

<?php while($this->next()): ?>
<?php if (stristr($this->category,$this->options->bigpic)) { ?>
大图显示的文章代码
<?php } elseif (stristr($this->category,$this->options->multiplepic)) { ?>
多图显示的文章代码
<?php } else {?>
正常显示的文章代码
<?php }?>
<?php endwhile; ?>

其中相关字段的含义如下:

$this->category  //调用文章的分类缩略名,会有多个
$this->options->bigpic //调用后台设置的指定大图显示的缩略名
$this->options->multiplepic  //调用后台设置的指定多图显示的缩略名

因为我是在后台控制点的,所以还在模板的function文件夹里themeConfig方法中加了如下代码:

$bigpic = new Typecho_Widget_Helper_Form_Element_Text('bigpic', NULL, NULL, _t('大图显示分类'), _t('填写指定分类缩略名,在首页列表中将大图显示。'));
    $form->addInput($bigpic);
$multiplepic = new Typecho_Widget_Helper_Form_Element_Text('multiplepic', NULL, NULL, _t('多图显示分类'), _t('填写指定分类缩略名,在首页列表中将三张图显示。'));

以上就是实现的全过程,其实还有一些问题,以后再补充吧
转载记得注明来源

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.ruletree.club/archives/875/
jQuery.lazyload懒加载插件在jQuery ias中使用方案
« 上一篇 12-17
typecho调用评论所属文章标题及链接
下一篇 » 12-19
广告

发表评论

成为第一个评论的人

作者信息

热门文章

标签TAG

热评文章