サポート » プラグイン » WP-Membersでログイン失敗時の表示画面について

  • wakasat

    (@wakasat)


    こんにちは、いつもお世話になっております。

    wp-membersを使用して、簡単な1ページものの会員サイトを制作しています。
    index.phpに各記事の内容を寄せ集めて表示し、シングルページは閲覧しない仕様です。
    大方上手くいったのですが、わざとログインでパスワードを間違えてみると、
    ログイン失敗時に飛ばされるページが何故か個別の記事ページです。
    ログイン出来ないとみられないのでコンテンツは出ないのですが、
    タイトルが見えてしまうのでこの画面は表示したくありません。
    functions.phpでログインしたリダイレクト先をトップページにしてもsingleページでした。
    ログインを成功させればそのままトップページ上の隠されたコンテンツが表示されうまくいきます。

    検索してみるとこの方の症状と似ていました。
    WP-Members 記事一覧ページのログインについて|teratail

    こちらでアドバイスされている

    function un_logged_in_user_redirect() {
        if( ! is_user_logged_in() && is_single() || is_archive() || is_singular( 'カスタム投稿' ) ) {
            wp_redirect( '/login' );// ログインページのURL
            exit();
        }
    }
    add_action( 'template_redirect',  'un_logged_in_user_redirect' );

    を試してみたのですが、そうすると個別の記事ページには行かないのですが、
    ログインに失敗したという記述も出ず、ただ同じページをリロードしたような状態になります。

    そこで、最新の記事が出ているようなので、表示設定をいじれば良いのかなと思い、
    少し乱暴ですが「index」というパーマリンクで固定ページを作成し、
    表示設定を「最新の投稿」から固定ページに変更しました。
    そうすると同じページでログインエラーが出る、想定のページになりました。

    前置きが長くなってしまいすみません。
    後学のために質問させて頂きたいのですが、
    なぜログイン失敗をすると最新の個別の記事ページに飛ばされてしまうのでしょうか?

    それから、「index」や「home」のパーマリンクの固定ページを作成する方法は
    あまり良くないでしょうか。

    長くなってしまいましたが、アドバイスいただけると嬉しいです。

  • このトピックに返信するにはログインが必要です。