4

我正在使用 WP v3.3.1,并且正在尝试制作插件。我已经让它半工作了。它启动了,并且 add_action 有效,但由于某种原因,我的过滤器没有被触发。当我四处搜索时,我看到我应该这样做,但它不起作用。我还尝试将它包含在课堂之外,但这也不起作用。错误日志是从构造函数写入的,但不是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;
    }
4

2 回答 2

12

改变这个:

add_filter( 'xmlrpc_methods', array( &$this, 'xmlAddMethod') );

至:

add_filter( 'xmlrpc_methods', array( 'TargetDomain', 'xmlAddMethod') );
于 2012-05-10T15:17:05.670 回答
5

您还可以使用 php 的魔法__CLASS__常量。

add_filter( 'xmlrpc_methods', array( __CLASS__, 'xmlAddMethod') );
于 2017-04-21T10:51:11.673 回答