17

ユーザーシステムを備えたウェブサイトを持っています。wordpress のユーザー システムをその Web サイトに統合したいのですが、それでも Web サイトの登録/ログイン ページを使用したいと考えています。WordPress のログインまたは登録フォームを使用して、誰もログインまたは登録できないようにしたくありません。代わりに、Wordpress のログイン/登録ページにアクセスしようとすると、それらのページが自分のログイン/登録ページにリダイレクトされるようにします。

これを行う方法はありますか?私はGoogleを試しましたが、ユーザーがログインまたは登録した後のリダイレクトしか見つかりませんでした。これは私が望んでいるものではありません。

前もって感謝します。

4

5 に答える 5

27

このためには、ログイン/登録ページをカスタム ページにリダイレクトする必要があります。したがって、functions.phpアクティブ化されたテーマフォルダーの下のファイルにこのコードを記述します。カスタム ページ パスを Argument として渡します。

 add_action('init','possibly_redirect');

function possibly_redirect(){
 global $pagenow;
 if( 'wp-login.php' == $pagenow ) {
  wp_redirect('http://google.com/');
  exit();
 }
}
于 2009-12-29T21:04:49.913 に答える
19

POST または GET リクエスト (カスタム ajax ログイン フォームに便利) を使用せずに、「wp-login.php」のみに直接アクセスを制限するには、高度な関数を使用します。

function possibly_redirect(){
  global $pagenow;
  if( 'wp-login.php' == $pagenow ) {
    if ( isset( $_POST['wp-submit'] ) ||   // in case of LOGIN
      ( isset($_GET['action']) && $_GET['action']=='logout') ||   // in case of LOGOUT
      ( isset($_GET['checkemail']) && $_GET['checkemail']=='confirm') ||   // in case of LOST PASSWORD
      ( isset($_GET['checkemail']) && $_GET['checkemail']=='registered') ) return;    // in case of REGISTER
    else wp_redirect( home_url() ); // or wp_redirect(home_url('/login'));
    exit();
  }
}
add_action('init','possibly_redirect');
于 2012-09-12T07:44:47.000 に答える
2

カスタム ログイン ページを使用しているが、それでも wp_login_form() を使用している場合は、フォームが wp-login.php に POST することに注意してください。そのため、リダイレクトする前に $_POST が空かどうかを確認する必要があります。

function prefix_wp_login_redirect() {
  global $pagenow;  
  if( $pagenow == 'wp-login.php' && empty($_POST)) {
    auth_redirect();
    exit();
  }
}
于 2014-09-24T22:25:06.970 に答える
1

login_headフックに引っ掛かり、そこでリダイレクトを発行できる場合があります。

于 2009-12-29T20:34:32.583 に答える