我在修改K2主题时的一些体会,写出来也许对碰到类似问题的朋友有些帮助。主要是关于header里页面的问题,还有一些零碎的事项,写下来也算是一个修改工作的备忘录吧。
页面相关文件位置
“页面”在K2主题里用header下的menu字段定义。其中:
PHP输出控制在
app\includes\display.php 25-48行 函数function k2_header_menu()
CSS样式控制在
css\core.css.php中”Main Menu in Header”注释下
隐藏页面的方法
网上已经有如何隐藏某个页面的详细介绍,参看这里。
页面翻页后同时显示主页和当前页面问题的解决
页面如果不涉及翻页是不会出现这个BUG的,但是如果页面涉及翻页,“主页”和当前页面会同时显示为选中状态,因为is_archive和is_paged判断同时为true。
这个问题及其它类似的问题的解决,关键在于状态标签的使用。WordPress官网上有关于状态标签的详细说明,见这里。我的体会是,状态标签是非常有用的,在WordPress程序中使用频率也非常高。
在上文提到的k2_header_menu函数中,<li></li>中的if语句就是判断哪个页面为当前页面的语句,原文的or判断太繁琐,只留下一个你需要的条件即可,其它的可以注释掉。另补充两句比较有用的判断语句:
is_home() && !is_paged()
is_category(’31’)
前者已经有很多文章介绍用法。后者适用于调用了某个分类(标签、作者等等也一样)的页面。例如我的“照片”页面调用了“凝视有时”这个分类,分类序号是31(获得分类序号的方法请自行Google),用了is_category判断后“照片”页面的翻页就会显示正常了,否则从第二页开始“主页”和“照片”会同时显示为当前页面。
K2主题的其它注意事项
1.K2的css文件并不符合W3C标准,因为它的style.css实际上引用了css文件夹下的core.css.php,如果你希望网站能通过W3C的CSS验证,可以把core.css.php文件改为相同名称替换掉根目录下的style.css文件,但记得把第一行注释掉:
<?php require(‘gzip-header-css.php’); ?>
2.如果你需要自己撰写新的页面模板,保存时必须存为UTF-8编码,保存为UTF-8无BOM和ANSI编码都会出现header上空行的问题,IE内核浏览器还会出现header右侧错位的问题。
3.K2主题大量使用了嵌套、引用的函数和模块,使得自定义性较差。如果自己编写模板需要改变某些函数和模块,在app文件夹下可找到所有K2自己的函数和模块。
4.我修改的K2主题在IE6下有一个小BUG,每篇日志的第一条评论的评论者ID背景色无填充。另外通过这一个多月的使用我发现,不同机器上的IE6和基于IE6内核的遨游浏览器对样式表的解析各有不同。IE7和Firefox表现完美。鉴于IE6这款浏览器可以把一个程序员活活整死,而我只是个门外汉,还是放下强迫症的倾向,由它去吧!
“K2主题页面相关问题解析及一些零碎”上的5条回复
我使用的是K2 1.1这个主题,在chrome和firefox下都显示正常,今天无意中发现,在IE里打开,tab显示不正常。。不知道什么原因,K2的tab样式无法显示出来。
啦啦啦啦
嗯。
呵呵,新的默认主题会不会是k2呢?
呵呵,是啊,怀着好奇与期待等待着新的默认模板。
特别是看看是不是有tab的那种,我现在喜欢有标签卡的主题了。想在博客加入一些(特殊)页面而避免日志模式的一些不足。
假如新的默认模板不理想,我可能考虑在原来的模板的基础上加入tab,不知道这样的方案实现起来难不难。
咋看起来挺复杂的,之前对K2还是有些好印象的。
不知道WP3.0会使用什么新的默认主题。