網頁

2006年10月12日 星期四

Wordpress Category

之前為了讓 categories 能夠用中文顯示出來,必須參考 zonble 的「Wordpress 中文分類名稱」 裡面自己 patch 才有。而在 muwp 不適合這樣子直接改的狀況,就得自己想辦法看是寫 plugin 或是更動程式碼。因為如果是一般直接取名就取成中文,會發現當他變成網址的時候會被加工過,然後變成一堆由 % 所組成的奇怪符號,而無法辨識。這問題其實在 permalink 的時候也會出現,因為我們的 title 通常也都由中文組成,被加工過後也就看不懂。所幸 wordpress 有提供 customize 的選項,所以通常都會把他設定成:
/%year%/%monthnum%/%day%/%post_id%/

讓 原本的 title 變成數字,就比較不會那麼醜。不過在 category 上面就沒有這絕招可以放,因此呢得稍微想點辦法。無意間發現其實他在 table 裡面有一個欄位叫做 nicename ,應該是拿來作這檔事用的,只是沒有選項可以填阿?本來已經自己刻好程式來塞,才發現根本是多此一舉。因為呢,其實只要建立的時候先以英文的名稱建立,然 後進去 category 的管理選項裡面用修改的方式改成中文,就會發現他顯示的時候會用 nicename,也就是 rename過的中文名稱顯示,而實際上的 link 卻還是原來的英文名稱,真是太美妙啦。

不過呢,這些隱藏秘技,還真是一整個令人無法捉摸阿,如果沒去研究 source code 應該也很難曉得這些設計吧。

只是現在還有個問題,這邊怎麼玩都玩不出來,不知道為什麼我這邊的 category 都不會用樹狀的方式排列,永遠都是平平的一排,如果有有空的好心人恰巧路過,麻煩指點一下吧。先謝過了!

為了部落,噢不,為了PR!

這次回家過中秋,看到某粉紅會會長(CPU 他妹)一直在宣傳他們家工會台灣排行多少,然後整天黏著筆電,就想到前一陣子這附近在瘋的時候 BBS 上三兩篇文章就會看到「為了部落!」,其實還蠻有意思的。好,最近垃圾新聞看多了,學會很多廢話的技巧,其實我只是要說,我又把網址換回來了。

因為之前換成 muwp ,沒有力氣去看看到底該怎麼改,然後再加上胸毛男提到的我們都被神秘人物加進「部落格觀察」的名單之中,然後我又手賤把另外一個 DN 給加了進去,於是就 Duplicated 了 XD。再加上前一陣子Google 更新 pagerank ,RW 上這幾隻比較熟的除了胸毛男放大絕招,衝到五了之外,其他也都爬到三或四。為了這難得(以前的暴走不算的話),不好棄 PageRANK 於不顧啊!

於是,為了 PR ,所以所幸研究一下怎樣換回來吧 XD ,長期放 302 redirect 也不是啥方法。

於 是乎進去把 muwp 的架構稍微晃了一下,發現其實他原先是有設計 multi-sites ,可是對我而言不合用啊。因為我只有這個 blog.cookys.org 要拿出來,而並不是提供兩個 dns wildcard 變成兩個 site 給人申請(而且雖然說有寫,可是其實是寫一半吧 XD)。然後本來要從那個地方改程式,結果剛開始改,看到他送 database 的 query 的時候就覺得其實好像可以惡搞。反正他是送進來之後由 php 抓 _SERVER[”REQUEST_URI”] 來分辨,然後填進去查 database 裡面有沒有 match 的 record ,有的話拿出 blog_id 當成 index 繼續後面的動作,所以那我只要偷偷進 database 裡面亂改搞不好就可以了。沒想到果真如此,而且其實 MUWP 本身就在 Site Admin 裡邊的 blog 那個 tab 裡, Editing 選項中可以直接改。把對應的 Url、Siteurl、Home、FileUpload URL 給改一改後就可以正常過去了。

不 過就當功能正常很高興的時候發現,疑,怎麼沒辦法 Login 了。他會變成一直不斷的 Redirect_to ,我原本以為是 Browser 錯亂,結果清掉所有 cookies 後發現,根本就不會新增 cookies 進來啊,難怪會不斷 redirect 。請教了 Whatup 大師之後,他說可能是因為 domain 不同 ,發的 cookies 被 browser deny 了。測了一下,果真如此。所以就用骯髒的方式 patch 一下:
Index: wp-settings.php
===================================================================
— wp-settings.php (revision 802)
+++ wp-settings.php (working copy)
@@ -244,8 +244,9 @@
if ( !defined(’SITECOOKIEPATH’) )
define(’SITECOOKIEPATH’, $current_site->path );
if ( !defined(’COOKIE_DOMAIN’) )
- define(’COOKIE_DOMAIN’, ‘.’ . $current_site->domain);
-
+ if( strstr($_SERVER[’REQUEST_URI’],$current_site->domain) )
+ define(’COOKIE_DOMAIN’, ‘.’ . $current_site->domain);
+ else define(’COOKIE_DOMAIN’, ‘.’ . $_SERVER[’HTTP_HOST’]);
require (ABSPATH . WPINC . ‘/vars.php’);

if ( get_option(’active_plugins’) ) {

然後就可以過著幸福快樂的生活。可是其實並沒有,我這邊在 K2 的 SideBarModule 顯示那頁,又出現很詭異的問題,該顯示的東西跑不出來。本來以為是我移站的後遺症,後來才發現是因為我上了「歷史的今天」的 plugin ,然後在貼 code 的時候多按了一下 enter (鴨子說這個我很久以前也有發生過,其實我好像還有印象),所以多了一個空白行,就爛在很莫名其妙的地方。

不過總算,看起來順利的弄好了。順便還附帶送了新的 301 ,因為偉大的百度蜘蛛,來砍站的時候是用舊的網址(我一直沒發現舊網址原來照日期的話中間還會跑出一個 ‘date’ ,然後 CPU 就被吃滿,於是就順手送了 301 :
RedirectMatch 301 ^date/(.*) /$1

load 瞬間就輕下來了,百度的蜘蛛真的是超級無敵暴力。

題外話,跟大頭還有把妹揚出去吃飯走回實驗室的路上,我喃喃自語說,我還真是無聊,為了 PR 搞真久(那時還沒搞定),實在很沒意義。然後就出現了以下的對話:
大頭:不會啊,還好吧,反正你又沒啥事。
餅乾:哪還好,這樣很廢耶,都沒做到什麼。
大頭:沒差吧,放假又不用做啥。
餅乾:要啊,還很多程式還沒寫啊。
大頭:哎呀那不重要啦,如果說有更重要的事等你那就算了。
餅乾:最好是不重要啦,寫不出來不能畢業 ….~!@#$ …
把妹揚:(沉默~露出標準招牌呆滯笑容)
大頭:(打斷餅乾的話)唉優拜託,寫程式哪有啥重要的 ….
餅乾:(最好是資訊系寫程式不重要,正想反擊)很重要好嗎,不然 …
大頭:(繼續插話)不信你問把妹揚,把妹比較重要,最好是你能寫程式一輩子啦,把妹比較讚啦!
餅乾:(無言ing…)最好是你把妹把一輩子,靠把妹就能吃飯。
大頭:(露出輕蔑的表情)哎喲你不懂,啦你問把妹揚,把一個妹可以陪你一輩子,啊寫程式幹麻,又不能寫一輩子,快去把妹別寫程式啦。
餅乾:(…..)
把妹揚:(臉上露出欣然同意的表情)中肯!
餅乾:(ㄍㄢˋ)……

最好是這樣子吼,聯合起來,一整個無法反擊。

2006年10月3日 星期二

mu-wordpress 以及 virtual host 的三兩事

上一篇當 中提到剛做完轉換的動作,所以現在想到就會去對那可惡的 css 修修補補(改不好總是很討厭,雖然知道明明就是 ie 的問題)。現在目前遇到的問題跟以前一樣,如果用 ie 開的話,當你的 100% 超過 100% 的時候他並不會自動縮成 100% ,反而是直接繼續加下去(詳細情形可以比較一下用 ie/firefox 去開一下這篇 ,會發現我的 theme 只要解析度比較小的狀況下,ie 會被暴走的圖給撐大,然後把右邊的 sidebar 擠到下面去),色小外說他看到「max-width in Internet Explorer」這篇當中有提到透過 js 去算然後塞 fixed width ,可是我實在很懶惰,不想為了 IE 把事情弄的這麼複雜,以後貼圖的時候注意一下就好了,或是用 lightbox plugin 可能也是一個方法。

在 昨天晚上喀完某篇 42 pages 的 paper 之後就一整個呈現腦死狀態,幾乎完全不能思考,於是早早就去睡,沒想到才睡不到七小時就自然醒過來。本想繼續賴床,卻睡沒十分鐘就又醒了,起來東摸西摸, 沒想到竟然發現並且解決了幾個小問題。現在的 CSS 在 ie 底下應該正常不少了,不過難免還是會有意外,還是推薦大家去用 Firefox,尤其是 Firefox 2.0 RC1 真 的是快到很明顯。另外無意間跳到 screen 正在 tail -f httpd_error.log 的裝,看到不少 redirect error 的問題,才想到其實我可以透過送 301/302 的方式來暫時解決路徑不對的問題,於是去把 blog.cookys.org 的 vhost整個送 302 過來(不用 301 是因為「希望」有一天能夠再改回去)然後寫一行
RedirectMatch 301 ^/wp-content/uploads/(.*) /files/$1

暫 時把路徑作處理,才不會看到一堆叉叉。(不過我現在才發現,wordpress 在文中用上傳方式插入的圖片,竟然是直接寫死的用絕對位址,那只要搬家換名稱就一定一整個爆炸阿!應該要把他給改一下。)然後我又發現,在 httpd_access.log 的檔案中,由於我是直接設定成 wildcard virtualhost ,所以大家的 access log 都會在同一個檔案,那樣根本就看不出來是 access 哪個站阿,這樣要作 awstat 也有困難。還好 google 馬上告訴我們答案,在這邊有提到可以透過 LogFormat 來更動格式,當然 awstat 的設定也要一併修改。於是依樣畫葫蘆一下:
CustomLog /home/websites/iecs.us/wildcard.iecs.us/logs/httpd-access.log vhost_wildcard_combined
LogFormat “%{Host}i %h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”" vhost_wildcard_combined

就可以看到了。

意 外發現要報告的 paper 竟然長達 42 pages ,然後意外的發現 paper 描述要解決的問題跟我們一樣但是卻用了老王說他需要的方法。意外早起的早上,意外修好了一寫小蟲,意外的在 heather 的 tutorial hour看到正妹,意外的抓阿漂去上西班牙文,意外的收到牛盃背的電腦同時發現原來他女朋友是西班牙系。充滿意外的生活,其實也挺愜意。