修改永久链接的曲折历程
coolcfan Press从建立开始,一直使用 press.coolcfan.org/category/postname 这样的永久链接结构,比如我上一篇文章《从字符到LOGO[3]》,其永久链接是:http://press.coolcfan.org/notes/design/from-chars-to-logo-chapter-three。这样的地址有着良好的可读性,对搜索引擎也比较友好,但是,经过半年多的使用,我发现这种格式并不适合我。我是一个比较喜欢纠结分类方法的人,在这半年多中,我经常修改coolcfan Press的日志分类,包括分类的显示名(在分类列表中显示)和缩略名(用于永久链接),这就带来一个副作用——每当我修改分类的时候,都会使这个分类下一部分文章的永久链接发生变化,不可避免地会产生一些404(实际上日志却还在,只是链接改了),甚至导致搜索引擎的惩罚。我是个比较懒的人,想要一劳永逸,修改永久链接结构是最简单的方式。
好了,也许你已经看出来了,上面这段话在逻辑上有一点点毛病:如果我直接改永久链接结构的话,那岂不是所有文章原先的链接都会失效,岂不是会被搜索引擎惩罚得更狠?事实正是如此。不过,解决方法还是有的,那就是——地址转向!
实际上,WordPress本身就有提供地址转向功能。著名的插件Redirection所使用的默认转向方式,就是Wordpress内置的转向方式。这种方式设置起来比较简单,直接在Redirection里面添加规则即可——你可以一条一条地添加,也可以写一个正则式进行批量匹配,真的是相当方便。
另一种转向方式,则是LAMP主机的优势——Apache提供了一个叫做.htaccess的文件,用户可以在其中自行写入各种脚本,包括301转向脚本。我的空间正是基于LAMP的,我的空间提供者也强烈推荐我使用.htaccess。所以我决定使用.htaccess来解决coolcfan Press的转向问题。
好吧,好吧,我承认,这是一篇教程,前面写了好多废话,现在终于开始了,你一定等不及了吧?不过接下来还是有很多废话,因为这篇教程是以聊天的形式呈现的——我会将我和我的空间提供者ICEST的聊天记录奉上,让大家清楚地看到,从一开始到最后搞定的整个曲折历程。
修改永久链接的曲折历程,从这里开始。
被exclude这个参数害了好久……
自从使用了Derek原作、Dreamix修改的两栏版Grid Focus以来,一个问题就一直困扰着这个博客——主题导航栏的“按分类浏览”中,总是不显示三个主分类之一的“稀饭收藏夹”(包括其子分类)。惭愧的是,在这四个多月的时间里,我一直没有去研究问题的原因是什么,直到前几天,我才打开了主题的导航条文件(navigation.strip.php),并发现了问题之所在:wp_list_cats()函数的参数exclude。
Grid Focus的navigation.strip.php是这样调用wp_list_cats()函数的:
<?php wp_list_cats('sort_column=name&optioncount=0&exclude=10, 15'); ?>
好了,可以看到,其默认情况下,使用了三个参数。第一个参数sort_column=name,表示按照分类名来为分类排序;第二个参数optioncount=0,表示不显示各分类下面的文章数目;第三个参数exclude=10,15,表示不显示分类号码为10和15的分类。好了,现在事情的原因显而易见,我那可怜的分类的ID,正巧碰到了10或者15(具体是几我没看),于是就被屏蔽了。解决的方法很简单,删掉这一参数即可。
wp_list_cats的完整参数说明:
http://blog.nahoya.com/archives/2006_04/105
P.S. 看来即使是玩Wordpress也一定要善于思考勇于怀疑勤于学习啊!
P.S.2. 主题作者们发布主题的时候,一定要记住将那些自用的功能清理一下,否则会给他人带来困扰……
