2

こんにちは、header.php のドロップダウンにある Wordpress カスタム ログインを取得して、間違った電子メールまたはパスワードが入力された場合、または両方または 1 が空白のままになっている場合でもエラーを表示しようとしています。

これが私が使用しているログインフォームです

<?php
if ( ! is_user_logged_in() ) { // Display WordPress login form:
    $args = array(
      'redirect' => admin_url(), 
      'form_id' => 'loginform-custom',
      'label_username' => __( 'Username custom text' ),
      'label_password' => __( 'Password custom text' ),
      'label_remember' => __( 'Remember Me custom text' ),
      'label_log_in' => __( 'Log In custom text' ),
      'remember' => true
    );
    wp_login_form( $args );
} else { // If logged in:
    wp_loginout( home_url() ); // Display "Log Out" link.
    echo " | ";
    wp_register('', ''); // Display "Site Admin" link.
}
?>

ここからこのコードを見つけました: https://wordpress.stackexchange.com/questions/61267/prevent-wp-login-form-from-redirecting-to-wp-admin-when-there-are-errors

function wp_authenticate($username, $password) {
    $username = sanitize_user($username);
    $password = trim($password);

    $user = apply_filters('authenticate', null, $username, $password);

    if ( $user == null ) {
        $user = new WP_Error('authentication_failed', __('<strong>ERROR</strong>: Invalid username or incorrect password.'));
    }

    $ignore_codes = array('empty_username', 'empty_password');

    if (is_wp_error($user) && !in_array($user->get_error_code(), $ignore_codes) ) {

        // Put your code here

    }

    return $user;
}

上記をテーマ フォルダの functions.php にコピーしましたが、機能しません。フォームで呼び出す必要がありますか? そして、それが言う場所にどのコードを配置する必要がありますか:

// ここにコードを入れますか?

4

3 に答える 3

0

functions.phpユーザー名とパスワードを入力せずにログインボタンをクリックすると、次のコードを入力すると、ページに移動しwp-login.phpます。

functions.php次のコードをファイルに記述して、この購入を解決できます。

add_action('init', 'prevent_wp_login');

function prevent_wp_login() {
        if(isset($_POST['log']) && isset($_POST['pwd']))
        if($_POST['log']=='' && $_POST['pwd']=='')
        {
                $page = write your redirect url;
                // Redirect to the your url
                wp_redirect($page);

        exit();
        }
    }
于 2015-02-04T05:49:13.553 に答える
0

関数wp_authenticate($username, $password)は WP 関数であるため、functions.php に追加する必要はありません。wp-includes ディレクトリのpluggable.phpにあります。

はい、他の関数を呼び出すのと同じ方法で、フォームまたは検証スクリプトで呼び出す必要があります。例えば:

$CheckValidUser = wp_authenticate($username, $password);

is_user_logged_in()を呼び出す前に呼び出す必要があると思います。そうしないと、WP が既にユーザーを拒否しているため、 $username または $password はありません。

お役に立てれば。

于 2012-11-10T09:48:21.767 に答える