web-dev-qa-db-ja.com

Wp_insert_comment()をオーバーライドする方法

私はwp_insert_comment()(wp-includes/comment.php)を上書きしようとしています。私のテーマにあるfunctions.phpファイルに次のコード行を追加しました。

add_filter('wp_insert_comment', 'my_insert_comment');
function my_insert_comment($commentdata)
{
     /* Some stuff */
}


これは元のwp_insert_comment()関数に含まれる行です。

function wp_insert_comment($commentdata)
{
    /* Some stuff */
    do_action('wp_insert_comment', $id, $comment);
    return $id;
}

多くのテストの後、私は本当のwp_insert_comment()が実行されたように感じます、そしてそれがdo_action()行に来るとき、私のフィルタは考慮に入れられ、そして私のmy_insert_comment()関数はついに実行されます。


もちろん、私の目的は元の機能を自分のものに置き換えることです。 comments.phpファイルに直接書き込めばmy_insert_comment()は問題なく動作しますが、それを最新の状態に保ちたい

私は何か悪いことをしていますか?

1
Pierre Espenan

この関数はプラガブルではなく、WP coreの一部であるため、オーバーライドすることはできません。あなたができることはすべて、実際に行ったように、アクションwp_insert_commentへのフックを追加することです。

0
Eugene Manuilov