您可以完全交换掉运行xmlrpc服务器的类。所以创建一个子类wp_xmlrpc_server
, 将其用于xmlrpc服务器类,并使用您喜欢的所有受保护方法。
示例(未测试,小心使用):
<?php
class WPSE69959_XMLRPC_Sever extends wp_xmlrpc_server
{
// override the constructor to add your own methods.
public function __construct()
{
add_filter(\'xmlrpc_methods\', array(__CLASS__, \'_add_methods\'));
// call the parent constructor to set up the other methods
parent::__construct();
}
public static function _add_methods($methods)
{
$methods[\'say_hello_two\'] = \'this:say_hello_two\';
return $methods;
}
public function say_hello_two($args)
{
// do stuff with protected methods here!
}
}
// swap out the classes
add_filter(\'wp_xmlrpc_server_class\', \'wpse69959_swap_class\');
function wpse69959_swap_class($cls)
{
return \'WPSE69959_XMLRPC_Sever\';
}
要回答您的问题,它是受保护的,因为它是一个内部方法。没有理由让外面的人
wp_xmlrpc_server
类来使用该方法,因此没有理由将其公开。此外,如果它被不受信任的源使用,那么它的实现方式可能会导致意外的副作用(例如设置/发送错误),例如
wp_xmlrpc_server
班