在wp-login.php内部,我们有几个action
进程:'logout','register','retrievepassword'等等......当然还有'login'。
我正在使用login_footer
挂钩在“登录表单”
add_filter('login_footer', array($this, 'special_form'));
如何判断login
进程何时正在运行?所以我可以避免在其他动作中显示special form
('register','retrievepassword'等等。)
答案 0 :(得分:0)
检查wp-login.php
文件,我们看到$action
以这种方式找到:
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'login';
因此,使用以下代码,我可以知道正在运行的操作:
add_filter('login_init', array($this, 'login_init'));
function login_init()
{
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'login';
$this->login_running = $action == 'login' ? true : false;
}
为了在login_message
,login_footer
等后续钩子中使用它...
答案 1 :(得分:0)
使用“login_form_login”挂钩。
add_action('login_form_login', array($this, 'enable_special_form'));
/*... */
function enable_special_form() {
add_action('login_footer', array($this, 'special_form'));
}
其他wp-login.php操作还有一堆其他login_form_*
挂钩 - login_form_logout,login_form_register等。
作为参考,在WordPress 3.4.1中,login_form_ *动作在wp-login.php的第380行执行,可用的动作在第357行列出。