我正在使用WP v3.3.1,我正在尝试制作一个插件。我已经半工作了。它启动了,add_action工作,但由于某些原因我的过滤器没有被触发。当我用Google搜索时,我看到我本应该这样做,但它不起作用。我也尝试将它包括在课外,这也没有用。错误日志是从构造函数写入的,而不是xmlAddMethod
。我在单个文件中测试了xmlrpc调用,但是它有效,但是在编写类时遇到了问题。
//DOESN'T WORK HERE
add_filter( 'xmlrpc_methods', array( &$this, 'xmlAddMethod') );
class TargetDomain extends Domain
{
public function __construct()
{
error_log('TARGET: __construct');
//DOESN'T WORK HERE EITHER
add_filter( 'xmlrpc_methods', array( &$this, 'xmlAddMethod') );
parent::__construct();
}
function xmlAddMethod( $methods )
{
error_log('TARGET: xml_add_method');
$methods['myBlog.publishPost'] = 'publishMyPost';
return $methods;
}
答案 0 :(得分:7)
改变这个:
add_filter( 'xmlrpc_methods', array( &$this, 'xmlAddMethod') );
要:
add_filter( 'xmlrpc_methods', array( 'TargetDomain', 'xmlAddMethod') );
答案 1 :(得分:3)
你也可以使用php的魔法 __ CLASS __ 常量。
add_filter( 'xmlrpc_methods', array( __CLASS__, 'xmlAddMethod') );