如何在WordPress登录表单上隐藏“您现在已注销”消息?

时间:2020-09-24 作者:depar

Expectation:
我想隐藏用户注销后Wordpress登录表单上显示的登录消息。添加了我试图隐藏的消息的屏幕截图。

https://i.imgur.com/vJm56sI

Wordpress版本5.4.2

Wordpres主题:Oceanwp 1.8.9

我在函数中使用了下面提到的代码。我的主题的php文件。

add_filter( \'wp_login_errors\', \'my_logout_message\' );

function my_logout_message( $errors ){

    if ( isset( $errors->errors[\'loggedout\'] ) ){
        return null;
    }

    return $errors;
}

Error Recieved:

我已经提供了我收到的错误的屏幕截图。

https://i.imgur.com/xlpGiwM.png

此外,用户注销后,登录表单不可见。

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

导致错误的原因是筛选器接收并预期返回WP_Error 对象null 不是错误对象。

我们可以通过文档确认这一点,并通过类型提示强制执行:

function my_logout_message( \\WP_Error $error ) : \\WP_Error {
此外,如果您的代码正常工作,那么将消除所有错误,而不仅仅是注销消息。没有办法告诉用户他们的密码不正确,密码重置电子邮件或确认电子邮件正在发送中,等等

考虑到这一点WP_Error 说有一个remove 方法,因此我们可以删除loggedout错误(如果存在):

$error->remove( \'loggedout\' );
但我不建议这样做

相关推荐

如何使用wp_logout注销用户?

我可以wp_logout 工作,但必须生成大量警告(“PHP警告:无法修改标题信息-标题已发送”)。wp_logout 呼叫wp_clear_auth_cookie, 哪个呼叫setcookie, Cookie必须与HTTP头一起使用。我在打电话wp_logout 在页面内部(页眉或页脚),因此出现了问题。那么,我究竟应该如何以编程方式将用户注销呢?我可以这样做来响应ajax请求,但这似乎有点过头了。谢谢编辑当前代码如下:add_action(\'wp_footer\', \'fp_onload_php2