gpt4 book ai didi

php - 带有错误处理的 Wordpress 自定义登录

转载 作者:行者123 更新时间:2023-12-05 08:01:45 26 4
gpt4 key购买 nike

您好,我正在尝试让我的 Wordpress 自定义登录名位于 header.php 的下拉列表中,以便在输入不正确的电子邮件或密码时显示错误,或者即使两者或 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 中,但它不起作用 - 我是否必须在我的表单中调用它,如果是的话如何调用?我应该在上面写什么代码:

//把你的代码放在这里?

最佳答案

函数wp_authenticate($username, $password)是一个WP函数,不需要在functions.php中添加。它可以在 wp-includes 目录的 pluggable.php 中找到。

是的,您必须在表单或验证脚本中调用它,就像调用任何其他函数一样。例如:

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

我猜你应该在调用 is_user_logged_in() 之前调用它,否则不会有任何 $username 或 $password 因为 WP 已经拒绝了用户。

希望这对您有所帮助。

关于php - 带有错误处理的 Wordpress 自定义登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12413389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com