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可以正常顯示繁體字了。