在500个博客上启用XML-RPC

时间:2011-08-15 作者:Jeremy Boyd

如何更新托管在不同托管帐户上的500个不同博客并启用xml rpc发布?

我们正在为使用自定义WP部署的客户编写一个统一的系统,允许他们从我们的网站与他们的博客进行交互。

2 个回复
SO网友:chrisguitarguy

远程登录所有数据库服务器并更新enable_xmlrpc 选项,您将看到大量的工作。

但是,我怀疑您希望始终启用XMLRPC。如果是这种情况,请创建mu-plugins 文件夹位于wp-content. 创建php文件(enable-xmlrpc.php 或者不管你喜欢什么,都没关系),把这句话写进去:

<?php
add_filter( \'pre_option_enable_xmlrpc\', \'__return_true\' );
对于任何必须使用插件的站点,都将始终启用XMLRPC。

您可能可以通过FTP自动上传文件,只需将所有FTP信息收集到某种结构化文件中即可。过于简单(且未经测试)的Python ftplib示例:

>>> import ftplib
>>> to_send = open(\'enable-xmlrpc.php\', \'rb\')
>>> # maybe use the csv module?
>>> with open(\'site_data.csv\') as f:
...     for line in f:
...         host, user, pw = [i.strip() for i in line.strip().split(\',\')]
...         try:
...             s = ftplib.FTP(host, user, pw)
...             s.login()
...             # Switch to wp-content/mu-plugins
...             s.cwd(\'wp-content/mu-plugins\')
...             # You probably need to change the following line, untested
...             s.storbinary(\'STOR enable-xmlrpc.php\', to_send)
...         finally:
...             s.quit()
>>> to_send.close()

SO网友:Ashfame

未经测试,但应为:

<?php

require \'wp-load.php\';

$blogs = $wpdb->get_results("
    SELECT blog_id
    FROM {$wpdb->blogs}
    WHERE site_id = \'{$wpdb->siteid}\'
    AND spam = \'0\'
    AND deleted = \'0\'
    AND archived = \'0\'
    AND blog_id != 1
");

foreach ( $blogs as $blog ) {
    update_blog_option( $blog->blog_id, \'enable_xmlrpc\', 1 );
}
在WordPress根目录中创建一个包含上述代码的文件并运行:)

结束

相关推荐

如何通过XML-RPC获取所有帖子(以块为单位)?

I would like to retrieve all posts of a blog via the XML-RPC API of Wordpress.有以下方法blogger.getRecentPosts 和metaWeblog.getRecentPosts 理论上,如果给出足够高的值作为职位数量(或-1),则应返回所有职位。但是,这不适用于非常大的博客或非常弱的服务器,这些服务器无法在内存中保存整个博客。在这种情况下,这些函数最多不会返回任何内容,也不会向响应XML中抛出错误。一种解决方案是一次检