is函数可以用于判断index/archive/category/tag/date/single/page/post/attachment等,具体用法见下文描述。注意哈,这些页面是有相互包含的关系的,具体在使用过程中要多尝试下。

$this->is('index')

从字面可见,判断当前页面是否是首页。

$this->is('archive')

判断当前页面是否是归档页,譬如主页,分类文章页,标签文章页,日期归档文章页。

$this->is('category'),或者$this->is('category','some_slug')

判断当前页面是否为分类文章页,如果加第二个参数slug,则进一步判断是否为特定的分类,譬如默认分类的slug是“default”。

$this->is('tag')或者$this->is('tag','some_slug')

判断当前页面是否是标签文章页,如果加第二个参数slug,则进一步精确判断,原理同category

$this->is('date')或者$this->is('date','some_range')

用于判断日期,其中some_rage可以是year/month/day判断当前页面是否是日期归档页,如果指定第二个参数,则进一步精确判断。

$this->is('single')

用于判断是否是内容页面,所谓内容页面,包括文章页、独立页面和附件显示页。

$this->is('post')或者$this->is('post',$post_id)

用于判断是否是内容页,加第二个参数则进行精确判断。

$this->is('page')或者$this->is('page','some_slug')

用于判断当前页面是否为独立页面,加第二个参数表示精确判断,譬如$this->is('page','about')则表示判断当前页面是否是about页面。

$this->is('attachment')或者$this->is('attachment',$attachment_id)

同上,用于判断附件页面。

判断登录者身份(typecho定义的五种角色)

五个角色分别为:管理员(administrator), 编辑(editor), 贡献者(contributor), 关注者(subscriber), 访问者(visitor)。

模板里的判断方法

<?php if($this->user->group === 'administrator'): ?>
//管理员
<?php endif ?>
//其他依次类推...

制作模板的时候有些小伙伴们想在分类的右边填写分类的数量,这个时候就需要获取代码片段。

$this->widget('Widget_Metas_Category_List')->parse('<a href="{permalink}">{name}(count)</a>');

代码说明:

先获取Widget_Metas_Category_List列表类,然后再输出分类的url聚合页索引、类名及数量。大括号内的变量将会被php代码解析替代成具体的值然后输出。

此parse解析会生成一个li包含a标签的内容,parse函数里面的内容可以自由定制。