从类中向挂钩添加函数

时间:2015-10-30 作者:Brady Pacha

下面是我的插件的精简版本,以保持简单。正在调用我的设置函数,但当我转到登录页时,它并没有像应该的那样消亡。我之前让插件工作过,但是我正在尝试将其重新写入类结构,使其更加独立。

if ( ! function_exists(\'add_action\') ) {
   header(\'Status: 403 Forbidden\');
   header(\'HTTP/1.1 403 Forbidden\');
}

add_action(\'plugins_loaded\', array(\'My_Authentication\', \'setup\') );
if ( ! class_exists(\'My_Authentication\') ) {
    class My_Authentication {
        public function setup() {
            add_action(\'wp_login\', array(&$this, \'no_auth_allowed\') );
            add_action(\'wp_logout\', array(&$this, \'no_auth_allowed\') );
        }
        public function no_auth_allowed() {
            wp_die(\'no authentication for you!\');
        }
    }
}
为了澄清我的问题,为什么no_auth_allowed() 当我转到wp-login.php

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

我创建了一个类实例,并在add_action, 移动到创建实例的下方:

if ( ! function_exists(\'add_action\') ) {
   header(\'Status: 403 Forbidden\');
   header(\'HTTP/1.1 403 Forbidden\');
}

if ( ! class_exists(\'My_Authentication\') ) {
    class My_Authentication {
        public function setup() {
            add_action(\'wp_login\', array(&$this, \'no_auth_allowed\') );
            add_action(\'wp_logout\', array(&$this, \'no_auth_allowed\') );
        }
        public function no_auth_allowed() {
            wp_die(\'no authentication for you!\');
        }
    }
    $my_auth = new My_Authentication;
}
add_action(\'plugins_loaded\', array($my_auth, \'setup\') );

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register