主页/WordPress笔记/博客文章/综合文章/如何在 WordPress 登录错误信息中禁用登录提示

如何在 WordPress 登录错误信息中禁用登录提示

Bug编译狮

Bug编译狮

要解决这个问题,我们需要进入 WordPress 的后台设置页面,找到并修改相关选项。

  1. 打开您的浏览器,然后输入您的 WordPress 网站的 URL。
  2. 在浏览器地址栏中,点击右上角的 “更多” 图标(通常显示为三个横线)。
  3. 从下拉菜单中选择 “管理网络” 或者 “管理员账户”。
  4. 进入后,您会看到一个名为 “设置” 的标签页。点击它以展开设置。
  5. 在设置页面中,向下滚动到最底部,找到并点击 “常规” 标签。
  6. 在常规标签页中,找到并点击 “登录错误消息”。
  7. 将 “禁止显示登录错误消息” 选项前的勾去掉,取消启用这个功能。

注解:

  • 这个操作会完全移除 WordPress 自动显示的登录错误消息。这意味着用户无法通过任何方式获得关于为什么他们无法登录的信息,除非他们手动查看自己的错误日志或者访问网站的后台。

示例代码:

// 找到并删除登录错误消息
function remove_login_error_message() {
    if ( ! defined( 'WP_DEBUG' ) || WP_DEBUG === false ) return;
    define('WP_DEBUG', true);
}
add_action('init', 'remove_login_error_message');

使用步骤:

  1. 将上述代码添加到您的主题的 functions.php 文件中。
  2. 运行以下命令来激活更改:
    nano wp-content/themes/your-theme/functions.php
  3. 插入上述代码。
  4. Ctrl + XYEnter 来保存文件。

效果: 经过以上步骤后,WordPress 不再自动显示登录错误消息,用户只能通过查看自己的错误日志或访问网站的后台才能得知为何无法登录。

黑板前的Bug语法讲师

黑板前的Bug语法讲师

在WordPress中,我们可以使用内置的功能来禁用登录提示。以下是如何实现这一目标的方法:

1. 使用 wp_login_form() 函数

wp_login_form() 函数用于生成一个包含用户名和密码输入框的表单,用户可以在此处尝试登录。

示例代码:

function disable_login_form() {
    add_filter('login_url', '__return_false');
    wp_login_form();
}
add_action('init', 'disable_login_form');

解释:

  • add_filter('login_url', '__return_false') 这行代码会阻止登录页面的URL重定向到当前主题目录下的登录页。
  • wp_login_form(); 是用来显示默认的登录表单,它不会触发任何警告或消息。

2. 修改登录表单的标题和链接

你可以通过修改登录表单的HTML元素的属性来改变其外观,从而达到隐藏登录提示的目的。

示例代码:

<form method="post" action="<?php echo esc_url(home_url('/wp-login.php')); ?>" id="wp-login-form">
  <h3>Login to your account:</h3>
  <?php if (isset($_GET['error'])) : ?>
    <div class="error">
      <strong><?php _e('Oops!'); ?></strong> <?php _e('That was an error, try again.'); ?>
    </div>
  <?php endif; ?>
  <label for="user_login">Username or e-mail address: <span class="screen-reader-text">Enter your username or email address.</span></label><br />
  <input type="text" name="user_login" id="user_login" placeholder="username@example.com" /><br />
  <label for="user_pass">Password: <span class="screen-reader-text">Enter your password.</span></label><br />
  <input type="password" name="user_pass" id="user_pass" placeholder="password"/><br />
  <input type="hidden" name="redirect_to" value="<?php echo esc_url(esc_attr(get_permalink(get_option('siteurl')))); ?>" /><br />
  <button type="submit"><?php _e('Login'); ?></button>
</form>

解释:

  • 我们添加了一个<div class="error"></div>标签来显示登录失败的消息。
  • <input type="hidden"标签内设置value为登录成功的路径,这样当用户点击提交按钮时,他们将被重定向到正确的登录页面。

3. 限制管理员权限

如果要保护特定类型的登录(如管理员登录),可以在登录表单中添加额外的验证步骤以确保只有指定的角色才能访问。

示例代码:

<form method="post" action="<?php echo esc_url(home_url('/wp-login.php')); ?>" id="wp-login-form">
  <h3>Login to your account:</h3>
  <?php if (isset($_GET['error'])) : ?>
    <div class="error">
      <strong><?php _e('Oops!'); ?></strong> <?php _e('That was an error, try again.'); ?>
    </div>
  <?php endif; ?>
  <label for="user_login">Username or e-mail address: <span class="screen-reader-text">Enter your username or email address.</span></label><br />
  <input type="text" name="user_login" id="user_login" placeholder="username@example.com" /><br />
  <label for="user_pass">Password: <span class="screen-reader-text">Enter your password.</span></label><br />
  <input type="password" name="user_pass" id="user_pass" placeholder="password"/><br />
  <input type="hidden" name="redirect_to" value="<?php echo esc_url(esc_attr(get_permalink(get_option('siteurl')))); ?>" /><br />
  <button type="submit"><?php _e('Login'); ?></button>
  <script>
    // 验证管理员登录请求
    if (!current_user_can('administrator')) {
      wp_redirect(admin_url());
      exit;
    }
  </script>
</form>

解释:

  • 在这个例子中,我们检查当前用户是否具有管理员权限,如果没有,则跳转到管理员登录页面。

以上就是如何在WordPress中禁用登录提示的方法。请注意,这些方法可能需要根据你的具体需求进行调整。