会員別専用ページ

2017 年 3 月 8 日

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

このトピックには2件の返信が含まれ、2人の参加者がいます。1 ヶ月、 2 週間前 shinohara@by-yko.jp さんが最後の更新を行いました。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #82340

    shinohara@by-yko.jp
    Participant

    こんにちは、

    会員別専用ページを作成したく、
    通常会員が見られる個別ページ 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が表示されるようになって、リダイレクトがさせません。

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

    • このトピックは1 ヶ月、 3 週間前に  yasumax さんが編集しました。理由: サーバー情報を削除
    #82356

    yasumax
    キーマスター

    こんにちは。

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

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

    【参考URL】

    #82380

    shinohara@by-yko.jp
    Participant

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

3件の投稿を表示中 - 1 - 3件目 (全3件中)

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