サポート » 使い方全般 » 続きを読むをリダイレクトさせたい

  • simple membershipというプラグインを使って会員サイトを構築しています。

    続きを読むを押した際に未ログインの場合はログインページにリダイレクトさせたいのですがどうすればいいかわかりません。
    現在は続きを読むを押すと、一旦その記事に飛んでから登録ページへのURLが貼られるのですが、ログインしてない場合は会員登録のページに直接飛ばしたいのです。

    どのようにすればいいでしょうか??

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • ログイン状態を判別してリダイレクトする方法
    いくつかまえに参考になるスレッドがあるようですよ。

    トピック投稿者 sho2945

    (@sho2945)

    返信ありがとうございます。
    紹介いただいたURLでは続きを読むを押した際の処理がよくわからないです。。

    プラグインの使い方でしたかすいません。

    class.swpm-access-control.phpの
    public function check_and_apply_more_tag_protection($post)
    のapply_filtersのフック使うんですかね。

    • この返信は7年、 5ヶ月前にoisitが編集しました。

    設定の仕方かテーマが対応してないような感じですかね。
    正しく設定して、テーマが対応していれば、続きを読むは表示されないみたいですね。
    お力になれずすいません。

    いくつか方法がありますが、
    ・ログインしてなければ続きを読むという文字自体のリンク先を変更する
    ・記事にアクセスしたときに(続きを読むから飛んだかは関係なく)、自動的に会員登録ページへ移行する
    主にはこの二つが考えられると思います。

    上のほうが簡単なように思えますので、こちらについてはCodexを参照してください。
    「続きを読む」のカスタマイズ – WordPress Codex 日本語版

    ログイン状態でif分岐を作り、returnで会員登録ページへのURLを貼るだけです。
    例としては

    
    function modify_read_more_link() {
      if (is_user_logged_in()){
        return '<a class="more-link" href="' . get_permalink() . '">続きを読む</a>';
      }else{
        return '<a class="more-link" href="登録フォームのURL">未ログインです</a>';
      }
    }
    add_filter( 'the_content_more_link', 'modify_read_more_link' );
    

    こんな感じで実装できませんでしょうか?(テストできる環境にないので、必ずバックアップしてからご確認ください)

    また、公式HPを見たら、ログインしてない人がURLにアクセスすると自動でログインフォームにリダイレクトされる方法が紹介されてました。
    https://simple-membership-plugin.com/auto-redirect-non-logged-in-users-protect-whole-site/

    moreによる限定公開が選択されているかチェックして、
    trueの場合、本文を<!–more–>で2分割し、
    2分割以上されていれば、ログイン状態のチェックをして(あと二つ分岐があるけど)
    moreより前の文章と続きを読むにはログインしてくださいという文章をかえすようにコード書かれてたので、
    使い方の手違い等だと思いますけど。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「続きを読むをリダイレクトさせたい」には新たに返信することはできません。