这篇文章带你了解typecho如何判断页面,如判断是否是文章页、首页等

这是一个很常见的功能,就是简单的告诉模板现在是哪个页面,这样我们就可以在模板中使用简单的php判断语句来显示不同的内容。

Typecho内置了一个强大的is方法,供大家判断当前页面。

Typecho 判断当前页面的方法

比如我想只在首页插入之前发布的纯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来确定它是哪个附件

细心的朋友可能已经发现,以上判断有明显的层次,从上到下互相包含。