会員別専用ページ

フォーラム 使い方全般 会員別専用ページ

  • このトピックには2件の返信、2人の参加者があり、最後にby-ykoにより7年、 1ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #82340
    by-yko
    参加者

    こんにちは、

    会員別専用ページを作成したく、
    通常会員が見られる個別ページ ID:1573
    それ以外の会員は個別ページ ID:1472へリダイレクト
    という設定をしたいです。

    こちらの記事や他のサイトを参考に、function.phpに

    function member_page(){
    if(is_page(1573) && usces_the_member_status( ‘return’) != ‘通常会員’ ){
    wp_redirect(get_permalink(1472));
    }
    }
    add_action(‘get_header’, ‘member_page’);

    上のように設定し、通常会員でログインしてID:1573を表示すると
    ページ自体は表示されるのですが、上部に「通常会員」というテキストと以下のエラーがでます。

    Cannot modify header information – headers already sent by (output started at ●●●●/wordpress-4.7.2-ja-jetpack-undernavicontrol/wp-content/plugins/usc-e-shop/functions/template_func.php:1659) in ●●●●/wordpress-4.7.2-ja-jetpack-undernavicontrol/wp-includes/pluggable.php on line 1179

    ログアウトしてID:1573を表示すると、ID:1472へリダイレクトは成功します。

    get_headerのフックが悪いのかと思い、他のフックで試すと、ログインしていなくても、他の会員ランクでもID:1573が表示されるようになって、リダイレクトがさせません。

    何か根本的に間違っているのでしょうか?

    • このトピックは7年、 1ヶ月前にyasumaxが編集しました。理由: サーバー情報を削除
    #82356
    yasumax
    キーマスター

    こんにちは。

    ———————————–
    wp_redirect()は自動的にexitしないので、直後にexitを実行すべきです。ページテンプレート内や他のページで使う場合は必ずget_header()より前に使ってください。
    [WordPress公式情報からの引用]
    ———————————–

    まずは、exitを実行されていないみたいですので追記してください。
    また、get_header()より前に実行しなければならないみたいですので、フックの場所が違うのではないでしょうか。
    template_redirectではどうでしょうか。

    【参考URL】

    #82380
    by-yko
    参加者

    yasumaxさま
    ご返信ありがとうございます、exitを追加し、template_redirectで試してみたのですが、やはり同じエラーが出ました。
    引続きフックを調べてみます。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。