Typecho神奇的is语法

Typecho神奇的is语法

2024年02月22日 作者头像 作者头像 泽泽社长 编辑

评论

0 Count

神奇的is语法

typecho可以使用is语法判断很多东西,比如

$this->is('index');  //判断首页
$this->is('archive'); //判断archive
$this->is('single'); //判断为阅读页面page+post
$this->is('page'); //判断独立页面page
$this->is('post'); //判断文章页面post
$this->is('category'); //判断分类页面
$this->is('tag'); //判断标签页面
$this->is('front'); //判断文章列表页面
$this->is('attachment'); //判断附件页面

当你在typecho后台设置→阅读中设置将某个独立页面作为首页后,那么原来的首页(文章列表页)就不能用$this->is('index');去判断了,而是使用$this->is('front');进行判断。

分类,页面,文章还可以这样判断

$this->is('category', 'default'); //判断分类缩略名等于default
$this->is('page', 'start'); //判断独立页面缩略名等于start
$this->is('post', 1); //判断文章cid等于1

需要注意的是,后面的参数是分类、页面的缩略名

完整使用实例

<?php if ($this->is('post')) : ?>
如果是文章页面就会显示这里的文字
<?php endif; ?>

判断为当前文章列表页的第几篇文章,并单独输出内容

<?php if ($this->sequence == 1): ?>
如果是当前文章列表页的第1篇文章,就会输出该内容
<?php endif; ?>

判断登录

<?php if ($this->user->hasLogin()): ?>
此处内容登录可见
<?php endif; ?>

判断程序版本号

前台用输出版本号

<?php $this->options->Version(); ?>

就能输出typecho的版本号,而他的格式是这样的

1.1/17.11.15

1.1是他的版本,而后面的该版本的日期,所以说即使大家都是1.1,后面日期不一样的话你们的程序代码上就会有区别。

那么假设你的模板不兼容某个版本的typecho时,为何不做个温馨提示呢?

<?php
$tver = substr($this->options->->Version , 0 , 3);
if($tver>1.0){
echo '该模板可能不兼容大于1.0版本的typecho';
}
?>

也可以根据后面的日期进行判断,总之判断完就能搞各种有趣的事情。

functions.php$this->options->Version可能没有用,没用的话试试下面这个,应该可以:

Typecho_Widget::widget('Widget_Options')->Version

或者

$options = Helper::options();
$options->version();

判断当前用户是否是文章作者

<?php if($this->user->uid==$this->authorId):?>
当前用户是文章作者
<?php endif;?>