web-dev-qa-db-ja.com

ログアウトして現在のURLにリダイレクトする方法

私はlogin/logoutのカスタムメニューを使っています。

<?php
   if(is_user_logged_in()) {
      $user = wp_get_current_user();
      echo 'Welcome <strong><a href="http://gopalbonline.com/kolkataonwheels/wp-admin/index.php" >'.$user->user_firstname.'</a></strong>
  | <a href="<?php echo wp_logout_url( get_permalink() ); ?>" title="Logout">Logout</a>';
   } else { ?>
      <strong><?php wp_loginout(); ?></strong>
      or <a href="<?php bloginfo('url') ?>/wp-login.php?action=register">     <strong>Register</strong></a>
<?php } ?>

しかし問題は

  1. 現在のページではなく404ページにリダイレクトしています...
  2. ユーザーgavatarがログインしている場合は追加します

任意の助けは大歓迎です。

2

wp_loginout(get_permalink());は "Log out/Log in"というテキストでハイパーリンクを作成し、ログアウトした後も同じページに留まるか、またはログインするようにユーザーに指示します。

3
MadCom

このようなもの

function my_redirect(){
    $redirect_url = $_SERVER['HTTP_REFERER'];
    if(!empty($_REQUEST['redirect_to'])){
        wp_safe_redirect($_REQUEST['redirect_to']);
    } else {
        wp_redirect($redirect_url);
    }
    exit();
}
add_filter('wp_logout','my_redirect');
1
Gembel Intelek

例えば:

<a href="<?php echo wp_logout_url( get_permalink() ); ?>" title="Logout">Logout</a>

すべてWP関数で実行できます - この場合、カスタムコードは必要ありません。

あなたはただfunction.phpからテーマにコードを移動する必要があり、それはうまくいくはずです。

0
Martin Zeitler