解决不能在Windows Live Writer中使用 WordPress MU 1.5.1 的 wp_getUserBlogs错误
来自http://lichao.net/weblog/web-development/blogging/111.html#comment-11956
一直使用 Microsoft Windows Live Writer 来更新自己的博客,感觉都不错。可是在前几天刚把自己所有的博客 WordPress MU 多用户版1.3.3 升级到 1.5.1后,WLW却不能好好地与MU合作了。具体是这样的,等自己在 WLW 里将文章写好后,按”Publish“ 来发表,却出现了一个 wp.getUsersBlogs 调用不存在的错误,言道要么是用户名出错,或密码不对。自己想到可能升级将我的用户名和密码搞乱了,所以赶紧登录到后台将用户名和密码统统更新了一把。再到WLW里重新发表新文章,还是同样的错误信息。为了测试一下是不是仅仅撰写出错,我试着在WLW里打开我博客上的文章,看到状态条动了一会,最后也是一个 wp.getUsersBlogs 不存在的错误。看来 WLW 整个与 WordPress MU 1.5.1 就不兼容了。
下面是我得到错误信息的全文:
log Server Error - Server Error -32601 Occurred server error. requested method wp.getUsersBlogs does not exist. You must correct this error before proceeding.
当然不甘心就因为一个升级而放弃WLW,赶忙到 WP MU 官方支持网站上找对策。竟然发现这就是个MU新版本的bug(见有人提交的错误报告http://trac.mu.wordpress.org/ticket/631)。 这个错误的罪魁祸首就是这个xmlrpc.php 文件。
要解决这个问题,主要需要改动两个地方。首先,当然是用你的文本编辑器打开 xmlrpc.php 文件。
第一、 找到第94行,如下:
Line 94 ‘blogger.getUsersBlogs’ => ‘this:blogger_getUsersBlogs’,
然后在它的前边加上下面这行代码:
‘wp.getUsersBlogs’=> ‘this:wp_getUsersBlogs’,
第二:再到文件的753行,开始复制代码到791行,然后回到代码221行 “* WordPress XML-RPC API” 处,粘帖整个刚才复制的代码。对这些代码稍作修改,就相当于插入一个新的 function 名叫 wp_getUserBlogs 修改后的代码如下:
* wp_getUsersBlogs
*/
function wp_getUsersBlogs($args) {
$this->escape($args);
$username = $args[0];
$password = $args[1];
if (!$this->login_pass_ok($username, $password) )
return $this->error;
do_action(’xmlrpc_call’, ‘wp.getUsersBlogs’);
$user = set_current_user(0, $username);
$blogs = (array) get_blogs_of_user($user->ID);
$struct = array();
foreach ( $blogs as $blog ) {
// Don’t include blogs that aren’t hosted at wordpress.com
if ( $blog->site_id != 1 )
continue;
$blog_id = $blog->userblog_id;
switch_to_blog($blog_id);
$is_admin = current_user_can(’level_8′);
$struct[] = array(
‘isAdmin’ => $is_admin,
‘url’ => get_option(’home’) . ‘/’,
‘blogid’ => $blog_id,
‘blogName’ => get_option(’blogname’),
‘xmlrpc’ =>get_option(’home’). ‘/xmlrpc.php’
);
}
return $struct;
}
最后、保存你的修改,再通过FTP上传这个文件到你的服务器,覆盖原来的 xmlrpc.php文件,就行了!你又可以用你心爱的WLW来更新你的MU博客了!
当然,如果你不想直接更改xmlrpc.php文件,你可以到这里下载已经改好的 xmlrpc.php 文件。另外,我关于这个问题的英文原文可以在这里找到。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构