我是wordpress的新手。我正在写我的第一个插件。我不知道如何在提交登录表单后才运行我的函数,而不是每次刷新登录页面时都运行。我尝试使用身份验证筛选器。但每次刷新登录页面时,我的函数都会运行。
我不明白为什么身份验证=访问登录页。我试图违约$username
作为参数为null,类似于my_function($user, $username=null)
并检查用户名是否为空,如果为空,则不要执行任何操作。问题是,即使提交了用户名,函数也不会返回任何错误。
这可能是由于优先级。我不知道我做得是否正确,但下面的操作不起作用。我试图设定最高优先级。
add_filter(\'authenticate\',array($myobject, \'login_authenticate\'),1);
是否有人可以为我提供一个示例函数,它可以在每次提交登录表单时返回自定义错误,即使登录名和密码正确。
SO网友:Milo
过滤器在每次页面加载时都会运行,但第一个参数将是WP_User
对象仅在成功提交时。会的null
如果没有提交任何内容,但很可能是WP_Error
对象,其中you can check for. 如果想知道具体的错误,必须查看对象包含的错误。未提交表格的情况将同时具有empty_username
和empty_password
数组键错误。
这可能会让我们了解一些事情:
function myplugin_auth_signon( $user, $username, $password ) {
var_dump( $user );
return $user;
}
add_filter( \'authenticate\', \'myplugin_auth_signon\', 30, 3 );
加载页面,然后尝试各种不正确和空值的组合,然后进行正确的登录。