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 に答える