导致错误的原因是筛选器接收并预期返回WP_Error 对象null 不是错误对象。
我们可以通过文档确认这一点,并通过类型提示强制执行:
function my_logout_message( \\WP_Error $error ) : \\WP_Error {
此外,如果您的代码正常工作,那么将消除所有错误,而不仅仅是注销消息。没有办法告诉用户他们的密码不正确,密码重置电子邮件或确认电子邮件正在发送中,等等
考虑到这一点WP_Error 说有一个remove 方法,因此我们可以删除loggedout错误(如果存在):
$error->remove( \'loggedout\' );
但我不建议这样做