2011-08-02 5 views
0

그래서, 난 플러그인을 개발하고, 나는 그것을 더 쉽게 관리 할 수 ​​있도록 메인 클래스 사용하고 있습니다 : 최대워드 프레스 플러그인 - (OOP) 클래스의 격차가

class MyPlugin{ 
    function __construct(){ 
     //my add_actions here 
     add_action('template_redirect', array($this, 'template_redirect')); 
    } 

    //my_class_methods here 
    function template_redirect(){} 
} 

지금까지를,이 모든 작업을하다 잘 됐네.

  • MyPlugin의 __construct의 인스턴스화의 $ 주석 = 새 코멘트에
  • (새로운 클래스 코멘트를 작성 : 음모가 두껍게하지만, 내가 그런 짓을하고 싶은 있도록 플러그인에 더 많은 복잡성을 추가 할 필요가)
  • 대표, 내 template_redirect()와 같은 $ 주석의 방법에 액션 :

    ADD_ACTION ('wp_insert_comment', 배열 ($ this-> 주석, 'wp_insert_comment')에서);

나 :

  • MyPlugin의 __construct의 인스턴스화의 $ 주석의
  • = 새 코멘트()이 방법 comment_method의에 내 클래스 코멘트의 __construct에서
  • 이 작업을 추가를 새로운 클래스 코멘트를 작성 :
add_action('wp_insert_comment', array($this, 'comment_method')); 

이것도 가능합니까? 어느 쪽이든 제 행동은 부름을받지 않고 있습니다. 당신의 도움에 대한 감사

답변

1

예, 그것은 가능하지만, 당신은 아마 코멘트가 게시 될 때 아마에서 호출되지 않은 template_redirect 후크를 사용하는 것보다 오히려 plugins_loaded 훅으로 대부분의 작업과 필터를 추가해야합니다 (양식 간다 WP-의견-post.php, 요청에 워드 프레스 거래로, 다시 템플릿이 필요하기 전에 코멘트 양식이었다 페이지로 사용자를 리디렉션.) 어떤 이유로

class MyPlugin{ 
    function __construct(){ 
     add_action("plugins_loaded", array($this,"_action_plugins_loaded")); 
    } 
    function _action_plugins_loaded(){ 
     //add actions & filters here... 
    } 
} 
+0

, 페이지가 발사되지 plugins_loaded 이벤트. 나는 wp_loaded를 사용하는 WP 3.2.1을 실행 중이다. 그리고 그것은 나에게 잘 맞는다. 다시 한번 감사합니다 –

관련 문제