0

wp-login.php 内にはaction 、「ログアウト」、「登録」、「パスワードの取得」などのいくつかのプロセスがあり、もちろん「ログイン」もあります。

login_footer「ログインフォーム」の直後にフックを使用して特別な機能を追加しています

add_filter('login_footer', array($this, 'special_form'));

loginプロセスだけがいつ実行されているかを判断するにはどうすればよいですか? したがってspecial form、他のアクション (「登録」、「パスワードの取得」など) での表示を避けることができます。

4

2 に答える 2

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'));
}

login_form_*login_form_logout、login_form_register など、他の wp-login.php アクション用のフックも多数あります。

参考までに、WordPress 3.4.1 では login_form_* アクションは wp-login.php の 380 行で実行され、使用可能なアクションは 357 行にリストされています。

于 2012-08-17T15:20:33.853 に答える
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...

于 2012-08-17T15:19:54.213 に答える