禁止WordPress使用谷歌字型的方法

webhek發表於2014-06-18

  最近谷歌在國內似乎遭到全面封殺,不僅搜尋服務完全無法使用,也殃及到其他服務,其中一個受牽連的事情就是,最近在使用Wordpress時,頁面載入異常緩慢,一個簡單的頁面需要等待很久,使用firebug檢視發現,是瀏覽器一直在等待頁面中嵌入的谷歌網路字型(google fonts)連結fonts.googleapis.com,直到超時。這說明fonts.googleapis.com這個網站也被封鎖了。

  我曾經在《網路字型(Web Font)的中文用法(一)》一文中說過,中文是很難使用網路字型的,更別說谷歌提供的英文網路字型了——基本上毫無用處。所以很奇怪為什麼中文版的Wordpress裡還引用了谷歌字型。

  既然谷歌被封殺是無法避免的,那對於我們個人來說就只能讓Wordpress禁止使用fonts.googleapis.com這個地址。讓你如何去掉頁面中嵌入的fonts.googleapis.com引用連結呢?

  WordPress系統裡有兩個地方使用了谷歌字型,一個是主題裡,一個是管理員介面。主題裡的谷歌字型很好去掉,直接刪除就行了,但管理員admin介面裡的谷歌字型就不是這麼容易了,因為我們不能修改wordpress系統檔案(修改後的系統檔案會在下一次升級時可能被覆蓋掉。)

  在wp-includes/script-loader.php的564行(我使用的版本是3.9),你能看到下面一段程式碼:

if ( 'off' !== _x( 'on', 'Open Sans font: on or off' ) ) {
		$subsets = 'latin,latin-ext';

		/* translators: To add an additional Open Sans character subset specific to your language,
		 * translate this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate into your own language.
		 */
		$subset = _x( 'no-subset', 'Open Sans font: add new subset (greek, cyrillic, vietnamese)' );

		if ( 'cyrillic' == $subset ) {
			$subsets .= ',cyrillic,cyrillic-ext';
		} elseif ( 'greek' == $subset ) {
			$subsets .= ',greek,greek-ext';
		} elseif ( 'vietnamese' == $subset ) {
			$subsets .= ',vietnamese';
		}

		// Hotlink Open Sans, for now
		$open_sans_font_url = "//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets";
	}

  很明顯,只要將if ( 'off' !== _x( 'on', 'Open Sans font: on or off' ) ) {這個判斷語句不通過就行了,也就是說,只要將位於wp-content\languages目錄下里的語言檔案zh_CN.mo修改一下就行了。

  首先開啟zh_CN.po,找到裡面的msgctxt "Open Sans font: on or off"這一行,將其下面的msgstr "on"改成msgstr "off",儲存,最後將這個修改後的zh_CN.po編譯成zh_CN.mo——你可以使用線上編譯工具http://tools.konstruktors.com/,或者使用Wordpress官方推薦的工具:PoEdit

  將編譯後的zh_CN.mo替換原zh_CN.mo。

  修改前:

#. translators: If there are characters in your language that are not supported
#. * by Open Sans, translate this to 'off'. Do not translate into your own
#. language.
#: wp-includes/script-loader.php:564
msgctxt "Open Sans font: on or off"
msgid "on"
msgstr "on"
	
修改後:
#. translators: If there are characters in your language that are not supported
#. * by Open Sans, translate this to 'off'. Do not translate into your own
#. language.
#: wp-includes/script-loader.php:564
msgctxt "Open Sans font: on or off"
msgid "on"
msgstr "off"

  如果你覺得這個去掉谷歌字型的方法還是複雜,那麼,你可以試一下disable-google-fonts這個Wordpress外掛。

相關文章