自從WordPress開始有MultiSite(MultiUser)功能後,一直未去啟用它,近日因幫友人以WordPress.com所架設的免費網站頻頻出現不雅廣告,故興起搬家念頭。

最直接的就是放在我付費的網域底下,故想起可以啟動那傳說中的多網站功能(按:因從未玩過故曰傳說)。然而啟動此多網站功能不是後臺勾選一下就好,得有好多步驟缺一不可,此啟動流程請自行google搜尋,或從底下延伸閱讀找著,此非本文重點故予略述!

本文所要談的重點為:先前單個網站(或部落格)或多個網站都可使用Windows Live Writer(WLW)來設定新增部落格帳號,援用其方便順手的文章編輯功能,惟本人改啟用WordPress之MultiSite功能後,主網站(main site)使用WLW像往常一樣沒問題,但子網站(sub-site)如何新增帳後都失敗,並出現如下畫面:

您已成功登入部落格帳號,但您在此服務提供者上沒有任何部落格。
$#xA;請跟此部落格服務提供者確認,然後再試一次。

WLW錯誤訊息

網上爬文熬夜了數天終於有了眉目,並將解決方法摘錄分享如下~~(感謝IT檔案館館主分享)

1.請用編輯器編輯 根目錄之wp-includes目錄下的class-wp-xmlrpc-server.php檔案
2.找到底下兩行字串(大約位於1556行)

程式碼1
3.修改上述字串並改為底下字串(刪除前述兩行程式碼改為後述九行程式碼)後存檔,即可正常以WLW新增部落格帳號使用了

程式碼2

 4.原理:因WLW無法新增帳號的問題就在_multisite_getUsersBlogs這個函數,據IT檔案館館主分析此函數並無作用,很明顯為WP MU的BUG,故自行繕寫修改程式碼,這一段的意思就是將原本呼叫_multisite_getUsersBlogs函數改成呼叫wp_getUsersBlogs,並且利用foreach循環處理找到的部落格信息(因為一個帳號可能有一個以上的部落格),foreach循環其實也只不過是從_multisite_getUsersBlogs的函數最下面複製過來的,所以真正修改的地方只有前兩行,這樣就可以正確的尋找到部落格了。
5.此BUG但願未來WP改版後仍有所修正。
6.上述兩段程式碼可從底下引用文章中獲得,不用辛苦重打,但其文章中的錯誤為不是修改
根目錄下的xmlrpc.php,而是wp-includes目錄下的class-wp-xmlrpc-server.php才對。

本文引用文章:IT檔案館 http://iteches.com/archives/12804

延伸閱讀:
1.
Wordpress MU架設
2.Getting WordPress multisite work with Windows Live Writer
3.解決不能在WLW中使用 WordPress MU 的 wp_getUserBlogs錯誤
4.WLW for MU WP

後記:
WordPress 3.0以後為了安全因素關閉了"遠端發佈"(Remote Publishing),原來可以從後台/設定/寫作中開啟勾選此功能,好便於外部編輯工具使用(如WLW),但考量網路安全故將此功能隱藏,故造成WP MU無法啟用遠端發佈(主網站main site可以,副網站sub-site就不行),研判此應該是WordPress MU的Bug(錯誤),故找了許久才有此文誕生,藉此分享。(按:若有特殊原因需要手動開啟Remote Publishing功能,請找尋此兩個外掛plugin,一為Activate Update Services;另一為Cntrol XML-RPC publishing)