2012-05-10 2 views
3

WP v3.3.1을 사용하고 있으며 플러그인을 만들려고합니다. 나는 반 작업을했다. 그것은 시작되었고 add_action이 작동하지만, 어떤 이유로 내 필터가 트리거되지 않습니다. 내가봤을 때, 나는 이런 식으로해야만한다는 것을 알았지 만, 효과가 없다. 나는 또한 클래스 밖에서 그것을 포함 시키려고 시도했다. 그것도 작동하지 않았다. 오류 로그는 생성자에서 기록되지만 xmlAddMethod은 기록되지 않습니다. xmlrpc 호출을 하나의 파일에서 테스트했는데 작동했지만 클래스를 만드는 데 문제가있었습니다.WP 플러그인 : 클래스 내부에서 add_filter 사용

//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; 
    } 

답변

7

변경이 :

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

하려면 :

add_filter('xmlrpc_methods', array('TargetDomain', 'xmlAddMethod')); 
1

또한 PHP의 마법 __CLASS__ 상수를 사용할 수 있습니다.

add_filter('xmlrpc_methods', array(__CLASS__, 'xmlAddMethod')); 
관련 문제