Archive

Posts Tagged ‘wordpress’

修改 SyntaxHighlighter 符合 XHTML 驗證

一月 8th, 2009

本站顯示程式碼是用「SyntaxHighlighter」,有人將它寫成 WP plugin,使用上非常方便,不過 SyntaxHighlighter 預設的呼叫語法是用

<pre name="code" class="html">......</pre>

由於 W3C 規範中 pre tag 是沒有 name 屬性的,所以鐵定要跟驗證貼紙說 bye bye,如果真的很在意的話可以這樣修改:

1. 修改 syntaxhighlighter.php

找到
<pre name="code"
改成
<pre title="code"

2. 修改 files/shCore.js

找到
tags[i].getAttribute('name')
改成
tags[i].getAttribute('title')

以 title 替換 name 屬性,這樣就能通過驗證了。

參考文章:Google SyntaxHighlighter - workaround for XHTML validation issue

PHP, 程式筆記, 網頁設計 , ,

[WordPress] 在 IIS 使用固定網址(Permalink)

一月 8th, 2009

Apache 有個非常強大好用的 mod_rewrite 模組,可以實現 URL Rewriting,運用在網站或部落格對 SEO 會有幫助。WP 的固定網址也是這類的運用,一般架設在 Apache 不會有什麼問題,只要有啟用 mod_rewrite 就 OK,不過如果是裝在 IIS 上,那就會看到很醜的 /index.php/aaa/bbb/123 這樣的網址,本篇就是教大家如何讓 IIS 真正擁有 rewrite 的功能。

首先必須安裝 for IIS 的擴充,微軟有針對 IIS7 開發一套 URL Rewrite Module,不過 IIS6 就只能用別的,測試很多套最後選擇 ISAPI_Rewrite,因為它幾乎相容 .htaccess、mod_rewrite 語法,也比較穩定,ISAPI_Rewrite 有分要錢的 full 版和免費的 Lite 版,差異請看這篇,目前選 Lite 就夠用了。

Step 1
先設定 WordPress ,進入後台選擇想要的固定網址格式,如「/%year%/%monthnum%/%day%/%postname%.html」,記得把前面 index.php 拿掉。
固定網址

Step 2
安裝好 ISAPI_Rewrite 3 Lite,編輯安裝目錄下的 httpd.conf 設定檔,內容範例:

# 假設WP網址為 http://aaa.domain.com/blog/
RewriteCond %{HTTP_HOST} ^aaa\.domain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/blog/ /blog/index\.php [L]

# 假設WP網址為 http://bbb.domain.com
RewriteCond %{HTTP_HOST} ^bbb\.domain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index\.php [L]

Step 3
基本上完成前兩個動作固定網址就可以運作了,但是如果網址帶有中文就會發生 404 錯誤,原因可以參考這篇,修改 wp-includes/classes.php

// 找到
$pathinfo = $_SERVER['PATH_INFO'];
// 改成
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'BIG5');

// 找到
$req_uri = $_SERVER['REQUEST_URI'];
// 改成
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'BIG5');

這樣就正常了。註:PHP 必須啟用 mbstring。

Server, Windows, 程式筆記, 系統筆記 , , , , ,

WordPress 2.3.2 無法中文化問題

一月 10th, 2008

WordPress 最近已經更新到 2.3.2 版了,趁著最近專題發表結束的空閒來更新一下,到官方抓了新版以及 Kirin Lin 的中文語系,由於 2.3.2 只是些 bug 及安全性修正,所以就直接採用覆蓋大法更新了。完工之後,咦?怎麼變英文介面了,wp-config.php 設定沒錯阿,於是求助 google 大神,馬上就找到了這篇,原來在 PHP 5.2.x 以及 64bit 系統下會有這個問題,登入 BlueHost 主機的後台看一下,果然沒錯,開始修正囉!

其實只要修正一行即可:
wp-includes/gettext.php LINE:117


if ($magic == ($MAGIC1 & 0xFFFFFFFF) || $magic == ($MAGIC3 & 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms

更改成:


if ($magic == $MAGIC1 || $magic == $MAGIC3) { // <- 64 BIT FIX: CHANGE THIS LINE!

ok!

Other, 程式筆記 , ,

WordPress 2.2 再爆新弱點

五月 31st, 2007

WordPress 2.13 版時有人發現滿嚴重的 admin-ajax.php 漏洞,但是到了 2.2 版還是又被人抓到洞了= ="
如果您的 WP 擁有一個 Subscriber 等級以上的帳號就會有危害,請立即 patch

大致是說修改 xmlrpc.php 檔案
將原本 537 行 (我找到是 541 行)
$max_results = $args[4];
改成
$max_results = (int) $args[4];

資訊新聞 , ,

WordPress 升級 2.2

五月 16th, 2007

今天不少人陸續將 WP 升級 2.2 了,也傳出了不少慘烈狀況。小弟的 IG:Syntax Hilite 似乎又衝到了,一啟用就會整個頁面變白色 = ="
有遇到這種情形的朋友請先砍掉該 plugin,如果還是救不活,可以到資料庫的 wp_options 資料表,找一個 active_plugins 項目,裡面記錄目前已啟用的 plugin,可以從這裡更改。
目前已經把 Syntax Highlighter 的 plugin 換成了 SyntaxHighlighter

另外以往都要手動在 wp-db.php 增加 "SET NAMES" 的 query,在這一版終於納入了,這樣在 MySQL 4.1 版以上才能存入正確的字碼,可以在新版的 wp-config.php 裡設定。

生活日誌