ypecho不同分类不同模板,比如A显示A的栏目页,B显示B的栏目页,这方面网上已经有相关教程了,但是笔者还想实现A和B分别指定不同的文章内容页样式,应该怎么办?
可以通过分类的缩略名,显示指定的文章内容页面。
先做好不同的文章内容页面,比如post-a.php,post-b.php页面,
然后打开文章后,通过获取到当前文章所在分类的缩略名,进行判断,比如某一篇a文章,当前属于分类template,打开文章后,判断文章的当前缩略名是否=template,如果是,那就显示template.php的文章自定义模板,这样就行了。
代码如下
当前为post.php页面
<!--分类名-->
<?php if($this->category == 'template'): ?>
<!--自定义文章页模板位置和名称-->
<?php $this->need('template.php'); ?>
<?php elseif($this->category == 'list'): ?>
<?php $this->need('list.php'); ?>
<?php else: ?>
<!--默认模板-->
<?php $this->need('post.php'); ?>
<?php endif; ?>
当然我是用的自定义字段判断的,因为我只有一个分类的文章没有自定义字段
<?php while($this->next()): ?>
<?php if ($this->fields->dizhi== null) { ?>
<?php $this->need('pages/post1.php'); ?>
<?php } else {?>
<?php $this->need('pages/post.php'); ?>
<?php }?>
<?php endwhile; ?>
我是用的判断dizhi这个字段是否为空判断的
最开始我用的if ($this->fields->dizhi) 或者 if ($this->fields->dizhi())这2个方法 都会有错误
如果字段内有内容就没事 如果是没任何内容就会出错 ,后来想了下 干嘛不判断直接值呢,后来判断直接值就一点问题就没了!