REGISTER_DEACTIVATION_HOOK参数->在所选函数中传递参数

时间:2014-07-13 作者:Neovea

我一直在寻找如何在register_deactivation_hook 具体如下:

register_deactivation_hook( __FILE__, array( new Cpt, \'delete_cpt\') ) );

class Cpt
{
    /**
     * Delete a custom post type
     */
    public function delete_cpt($name = \'test\') {
        /**
         * delete a single data
         */
        require_once( ABSPATH . \'wp-admin/includes/upgrade.php\' );
        $GLOBALS[\'wpdb\']->delete( 
            \'cpt\', 
            array( 
                \'name\'=>$name 
            ) 
        );
        $GLOBALS[\'wpdb\']->show_errors();
        echo $GLOBALS[\'wpdb\']->last_query;
        echo $name;
        die();
    }
}
函数执行,但$name var保持为空。我想通过考试$name 直接进入register_deactivation_hook;

至少有可能吗?到处都没看到。

3 个回复
最合适的回答,由SO网友:fuxia 整理而成

使用完整的函数作为回调函数,以便可以将参数传递给方法。示例:

register_deactivation_hook( 
    __FILE__,
    function() {
        $cpt = new Cpt;
        $cpt->delete_cpt( \'post_type_name\' );
    }
);

SO网友:adrian7

您可以在Cpt类中创建一个静态方法,并使用register_deactivation_hook; 然后创建对象并像往常一样发送数据。

SO网友:Domain

您应该更换register_deactivation_hook 代码行包含以下代码:

register_deactivation_hook( __FILE__, array( \'Cpt\', \'delete_cpt\' ) );

结束

相关推荐

hooks & filters and variables

我是updating the codex page example for action hooks, 在游戏中完成一些可重用的功能(最初是针对这里的一些Q@WA)。但后来我遇到了一个以前没有意识到的问题:在挂接到一个函数以修改变量的输出后,我再也无法决定是要回显输出还是只返回它。The Problem: 我可以修改传递给do_action 用回调函数钩住。使用变量修改/添加的所有内容仅在回调函数中可用,但在do_action 在原始函数内部调用。很高兴:我将其修改为一个工作示例,因此您可以将其复制/粘贴