2011-08-02 5 views
0

での除算は、私はプラグインを開発していて、それがより簡単に管理できるように、私は、メインクラスを使用しています。今まではWordpressのプラグイン - (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'));

か:

  • それの方法comment_methodにアクションを追加私のクラスコメントの__constructにMyPluginの__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 3.2.1を実行している、私はwp_loadedを使用し、それは私によく合う。もう一度ありがとう –

関連する問題