这篇文章带你了解typecho如何判断页面,如判断是否是文章页、首页等
这是一个很常见的功能,就是简单的告诉模板现在是哪个页面,这样我们就可以在模板中使用简单的php判断语句来显示不同的内容。
Typecho内置了一个强大的is方法,供大家判断当前页面。
比如我想只在首页插入之前发布的纯CSS对联,那么就可以这样写:
<?php if($this->is('index')): ?>
//首页输出对联代码
<?php else: ?>
//不是首页输出内容,留空即可。
<?php endif; ?>
比如我进入文章页面,想在右边边栏显示一个广告代码,我们就可以用下面的代码:
<?php if ($this->is('post')): ?> 判断是否是文章页 <?php endif; ?>
如果我想在某个页面上显示一个广告代码,比如about页面,那么我可以这样写:
<?php if ($this->is('page', 'about')): ?> about页面 <?php endif;?>
那么,哪些页面可以判断呢?答案是所有的页面,它们的参数如下
index:第一个参数设置为index,可以判断当前页面是否是首页
archive:第一个参数设置为archive,可以判断当前页面是文章存档页面、分类文章页面、标签文章页面还是日期存档文章页面
category:第一个参数设置为category,可以判断当前页面是否为分类文章页面,第二个参数传入具体的分类名(slug name),比如default,就可以判断具体是哪个分类
tag::的第一个参数设置为tag,可以确定当前页面是否为tag文章页面。第二个参数传入一个特定的标签段名,比如typecho,可以确定哪个标签。
date:第一个参数设置为date,可以判断当前页面是否为日期存档文章页面,第二个参数传年、月、日(year,month,day)可以判断是否为按年,按月还是按日归档
single:第一个参数设置为single,可以确定当前页面是否为内容页面,如文章页面、独立页面、附件显示页面
post:第一个参数设置为post,可以判断当前页面是否为文章页面,第二个参数可以传入文章id,可以判断具体是哪篇文章
page:第一个参数设置为page,可以判断当前页面是否为独立页面,第二个参数传入slug name,比如about,可以判断是哪个独立页面
attachment:第一个参数设置为attachment,可以判断当前页面是否是附件,第二个参数传入附件id来确定它是哪个附件
细心的朋友可能已经发现,以上判断有明显的层次,从上到下互相包含。