MediaWiki的一个特点是页面标题与页面网址对应,这样做内部链接的时候很方便。不过在有些情况下,需要对页面标题进行一些更改,MediaWiki中就引入了{{DISPLAYTITLE:}}这样的标记,使页面显示的标题与链接有所不同。
但我们最近还希望让页面的HTML源代码中的标题也有所变化,而Wiki系统中的PageTitle(位于<h1></h1>之间)和HTMLTitle(位于<title></title>之间)是不一样的。前些天在MediaWiki官方网站找了好久也没有找到适合我们使用的插件。
今天反复测试,终于找到了解决办法,将includes/OutputPage.php中的一段代码修改后可以实现我们希望的效果:
//jamesqi2012-8-29 $ret .= "<title>" . htmlspecialchars( $this->getHTMLTitle() ) . "</title>\n";
$ret .= "<title>" . htmlspecialchars( $this->getPageTitle() ) ." - ".wfMsgForContent( 'pagetitle-view-mainpage' ). "</title>\n";
前面一句被注释掉了,后面一句是我加上的。
这样做有违Wiki网站的初衷,但我们其实是把MediaWiki作为一种CMS在使用,并没有作为多人协作的Wiki平台,所以为了更好的SEO效果,这样修改还是有必要的。
评论1
繁体网站修改HTML Title也用这个办法
昨天在为繁体网站(如:tw.youbianku.com)添加手机版(如:tw.m.youbianku.com)的时候,偶然发现繁体网站的HTML Title与显示Title不一样,显示Title是繁体的,但HTML Title确实简体的!我查看了搜索引擎Google的网页快照,有些页面Title是对的,有些是错的,这个问题不知道是什么时候就存在的?我怀疑是MediaWiki某次版本升级之后就一直有这个问题,直到几年后才现在被发现。
已经用上面这个办法,将繁体网站和繁体网站的手机版的includes/OutputPage.php都进行了修改,现在的HTML Title可以正常显示繁体字了。