ユーザーアクセス/ userページのときにページリダイレクトを実行したい。ユーザーの匿名ユーザーが/ userにアクセスすると、user/loginページにリダイレクトされ、ログインユーザーが/ userページにアクセスすると、user /%/ editページにリダイレクトされます。
私は次のコードを試しました
function my_user_menu_alter(&$items){
$items['user']['page callback'] = 'my_user_page_redirect';
}
function my_user_page_redirect() {
global $user;
if (user_is_logged_in()) {
drupal_goto('user/'.$user->uid.'/edit');
}
else {
drupal_goto('user/login');
}
}
ログインしているユーザーの場合は、user /%/ editページにリダイレクトされます。匿名ユーザーの場合、Webページのリダイレクトエラーが表示されます
これどうやってするの。ありがとうございました
あなたはhook_menu_alter
なしでそれを行うことができ、hook_init
でそれを達成し、次のようなことを試します(hook_initでの変更は適用されるためにキャッシュをクリアする必要があることを忘れないでください)
function yourmodule_init(){
if(current_path()=="user"){
global $user;
if (user_is_logged_in()) {
drupal_goto('user/'.$user->uid.'/edit');
}
else {
drupal_goto('user/login');
}
}
}