一直都很想把自己做的主题能通过CSS和XHTML的认证,觉得这个东西虽然不是必要的,但也是对自己做的主题的一个检验。再加上现在的主题给弄得比较简单,所以昨晚修改了多个(依然多个)地方后,现在终于能在页脚上打上这两个认证VALID的链接了!
修改主题中也好像是得到一些启示,就想在这里写出来,或者有人日后也会碰到类似的问题。
通过XHTML认证的问题:
1. 我是先看了《xhtml 无法通过W3c认证的7个常见原因》这篇文章,写得很好,里面有基本会出现的问题,建议去看。
2. 但我的主题在XHTML的认证中却有着其它的问题,首先一个是因为我在首页显示的是摘要,而摘要的长短却和认证的通过非常有关系。原因是我的摘要长短是由中文工具箱这个WordPress插件决定的,而对于一些摘要字数过多(大于该插件的指定数)的段落,会提示缺少</p>这个标记!

我看了其它一些通过认证的blog,基本上都是通过more标签截断首页显示的文章,可能这种办法会比较容易通过。而对于自己的问题,我的解决的办法只能折衷,因为并不想在首页全文输出。我手动在index.php中加入缺失的</p>标签好了。这样问题是解决了,但必需保证日后的摘要字数均大于插件设定的字数,这样才能保证每个导航页面也能通过认证,所以干脆把插件的设定字数改少。
后补,在这里非常感谢xiaorsz在留言中的回复提醒!在很好的解决了上面的问题:在Shawn的blog上提及过的《WordPress 最简单的首页文章截断输出方式》这一篇文章中,只要我们把:
<?php the_excerpt(); ?>
改为:
<?php echo mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0, 120,"......"); ?>
问题解决!代码中的数字“120”为摘要输出的字数,理论学习请浏览该篇文章,厉害
3. 另外个人感觉如果主题的文件采用无BOM的UTF8编码,出现的问题会少很多。
4. 还有会出现的问题是在侧栏显示的列表,因为很多插件在调用时候已经默认了<ul><li>...</li></ul>的加入,所以如果我们在插入代码前还手动加上这些标签,也会提示出错的。
5. 可能还有出现是站内的一些外部链接,如果在新窗口打开,也就是添加“_blank”属性的,或者也不能通过。这个问题我没有遇到,尽管我的链接会是从新窗口中打开,但可能由于我用的是JQuery的修改(方法这里),所以并没有报错吧。
通过CSS3认证的问题:
1. 首先是需要去掉样式中所有对IE的hack-那些* html的样式代码。觉得这个很是为难,因为那IE6真的很可恶,去掉这些hack的代码后,样式的变化很大。这个问题的解决办法只能是重新设计主题有问题部分的样式了,能简单就简单,最后都不能达到预期要求只能更改设计了。经过痛苦修改后,现在的主题已经很好地在IE6,IE7和FF下显示一致了。
2. 另外针对WordPress的留言样式还有一个要提及的,就是一般我们会通过“.alt”,或者“.authorcomment”来区分留言楼层及作者样式(曾经的一篇介绍文章)。但我在这里发现了问题,因为对于没有添加“.alt”或者“.authorcomment”样式的留言楼层,也就是既不是单数楼层又不是作者楼层的,会在CSS的认证中出现错误!解决的办法只好增加代码为缺少样式的楼层重新添加样式了。
以上基本就是我昨晚遇到的问题了,我随便写写,不知道大家有没有碰到类似的。如果你有其它的解决建议,希望能给我留言,因为觉得自己的解决办法总不是太聪明。