随着typecho用户越来越多,大家对个性化的需求也越来越强,其实typecho自身有很多自定义的功能,受于文档缺乏的限制一直不为大家发现,现在我在这里给大家略说一二
我在哪?
这是一个非常常用的功能,简单来说就是告诉模板现在是哪个页面,这样我们在模板里就可以用简单的判断语句来实现特殊效果。typecho已经内置了强大的is方法来供大家判断当前页面。
比如,我想在进入文章页面时,在右侧边栏中显示一段广告代码,我们就可以这么写
<?php if ($this->is('post')): ?> 我的广告来了 <?php endif; ?>
如果我想在某一则页面,比如说about页面显示时,让它显示一段广告代码,那么可以这么写
<?php if ($this->is('page', 'about')): ?> 我的广告来了 <?php endif; ?>
那么,有哪些页面是可以供判断的呢,答案是所有的页面,他们的参数如下
- index:第一个参数设为index,可以判断当前页是否为主页
- archive:第一个参数设为archive,可以判断当前页是否为文章归档页,比主页,分类文章页,标签文章页,日期归档文章页
- category:第一个参数设为category,可以判断当前页是否为分类文章页,第二个参数传入具体分类slug name,比如default等等,就可以判断具体是哪个分类
- tag:第一个参数设为tag,可以判断当前页是否为标签文章页,第二个参数传入具体标签slug name,比如typecho等等,就可以判断具体是哪个标签
- date:第一个参数设为date,可以判断当前页是否为日期归档文章页,第二个参数传入year,month或者day,就可以判断是否为按年,按月还是按日归档
- single:第一个参数设为single,可以判断当前页是否为内容页,比如文章页,独立页面,附件显示页
- post:第一个参数设为post,可以判断当前页是否为内容页,第二个参数传入文章id,就可以判断具体是哪篇文章
- page:第一个参数设为page,可以判断当前页是否为独立页面,第二个参数传入页面slug name比如about,就可以判断具体是哪则独立页面
- attachment:第一个参数设为attachment,可以判断当前页是否为附件,第二个参数传入附件id,就可以判断具体是哪个附件
细心的朋友可能已经看出,上面的判断有明显的层次之分,他们从上到下互相包含,这样做有什么作用呢,下一次继续与大家分享typecho强大的模板结构.
38 Comments »
July 14th, 2009 14:05
试一下回复
July 14th, 2009 14:08
测试成功,可以回复
July 14th, 2009 14:12
些的很好,加油了!
July 14th, 2009 14:29
默认模板我小修改了一下。
开发团队可以参考一下。
标题字颜色更醒目。
首页显示文章摘要。
http://www.tianmeng.org/
July 14th, 2009 20:55
提醒!
你丢了if最后的括号!
July 14th, 2009 22:24
不需要括号,这是php的模板写法,你可以试试
July 15th, 2009 08:40
请问一下,怎么能安全备份数据
July 15th, 2009 14:57
功能很好,很无耻
July 16th, 2009 00:43
拷贝sqlite数据库到本地。呵呵。剩下的嘛。如果修改了模板,就将模板页拷贝。或者全拷贝出来算了。
安装ty我全是sqlite模式。方便。就是不知道sqlite模式性能如何。
拭目以待。
July 16th, 2009 00:50
windows 下
Apache 2.2.9、PHP
5.2.6 使用文中 的标签方式报错。错误大致为。
Parse error: syntax error, unexpected ':'
July 16th, 2009 08:16
e...确实少了括号,我已经加上了
July 16th, 2009 13:06
恩。上上贴你说的我自己都含糊了。之前都是c# ,自己还在琢磨是不是php语法灵活。呵呵。
如果你是开发人员。顶你们一下。
July 16th, 2009 18:42
期望下次能来个自动截取摘要的方法。
July 17th, 2009 10:26
哈哈,期待下次的的文章。
July 17th, 2009 17:51
这两天一直发不了评论.. 再来试试..
July 18th, 2009 15:24
不知道 mysql 和 sqlite 的性能比较怎么样?
July 18th, 2009 18:29
运行起来没问题。因为服务器在美国反应速度还可以。基本上和mysql没太大区别。就是不知道访问量上去了会怎样。不过sqlite的话,数据库就是个文件。非常方便。
总结:sqlite可以接受
July 18th, 2009 18:32
可以在需要显示摘要的地方用
上面贴的是代码。不知道能不能显示出来。
这个调用的就是 文章的摘要,不过这个摘要就是文章内的description 因为你看到 typecho是可以自动截取description的。
不过不知道后台有没有做缓存,因为我将主页设置的时候感觉好像速度慢了。
July 18th, 2009 18:32
果然代码出不来:我试试这个方法
July 18th, 2009 18:33
还是出不来。没办法了。实际上就是
$this-> description();
July 18th, 2009 18:48
谁能告诉我 建立页面的时候 那个
“自定义模板”
“如果你为此页面选择了一个自定义模板, 系统将按照你选择的模板文件展现它”
这个功能怎么用?一点资料也找不到。自定义模板建立有什么命名规则?又或者需要在哪里注册一下 这个下拉框才能找得到?
小鱼在这里谢谢各位!!!
July 24th, 2009 00:21
确实很不错 我要好好的看一下
July 24th, 2009 00:23
这个回复好玩了!
July 29th, 2009 11:17
加油,关注中。
July 30th, 2009 01:45
{cid} =日志ID + 附件ID
建议可否把两ID分离出来?
July 30th, 2009 19:53
为什么评论出不来了。
July 30th, 2009 19:54
发一个我做的实验品。
看的点击我名称。
August 6th, 2009 00:11
http://www.greengnn.org
新模版上线,报个到。
August 15th, 2009 14:05
环境:
Apache/1.3.41 (Unix) Sun-ONE-ASP/4.0.2 mod_fastcgi/2.4.6 mod_log_bytes/1.2 mod_bwlimited/1.4 mod_auth_passthrough/1.8 FrontPage/5.0.2.2635 mod_ssl/2.8.31 OpenSSL/0.9.7a
访问install.php出现:
Parse error: syntax error, unexpected ';'
August 18th, 2009 03:37
问一下,else在这段代码怎么写?
September 24th, 2009 14:09
回复一下
October 3rd, 2009 14:29
测试回复
November 4th, 2009 15:03
Typecho 强大的类,不错。
November 13th, 2009 10:14
feed页面可以判断吗?
January 29th, 2010 15:47
不错的功能,用上了
April 29th, 2010 11:35
我想在index页面判断几篇文章是否是属于某一个分类的,比如判断是不是news分类的,然后对title做样式的处理。。。。这是我写的
April 29th, 2010 11:37
怎么代码没有了 ???难道被执行了啊。。。
April 29th, 2010 11:46
也就是说怎么判断一篇文章是属于某一个分类的?
Leave a Comment