ログインフォームブロックがあります。ユーザーがサイトへのログインに失敗した場合、通常のエラーメッセージでユーザー/ログインページにリダイレクトしたいと思います。
あなたはform_alterでこれを行うことができます
function MODULE_NAME_form_alter(&$form, $form_state, $form_id) {
switch ($form_id) {
case 'user_login_block':
$form['#validate'][] = 'my_custom_login_val';
break;
default:
break;
}
}
function my_custom_login_val($form, &$form_state) {
$form = form_get_error($form['name']) . form_get_error($form['pass']);
if($form != '') {
$_GET['destination'] = 'user/login';
drupal_goto('user/login');
}
}
正しいログインがページにリダイレクトされた後に必要がある場合は、 ログイン先 を使用します
ここで、hook_form_alterを使用した少し異なる答え
function MODULE_form_alter(&$form, &$form_state, $form_id)
{
if ($form_id == "user_login_block")
{
$form["#validate"][] = "MODULE_validate_login";
}
}
function MODULE_validate_login($form, &$form_state)
{
// on successful login, the uid is set in form_state.
if (empty($form_state["uid"]))
{
$_GET["destination"] = "user/login";
drupal_goto("user/login");
}
}