サポート » マルチサイト » 登録ユーザーがそれぞれの個別ページにのみアクセス

  • 解決済 sakakibara-yo1

    (@sakakibara-yo1)


    初めまして。
    トピック通り、登録ユーザーが所定のURLへアクセスし、IDとパスを入れると
    登録ユーザの個別ページのみ閲覧でき、編集などの権限は与えず、
    他のユーザのページは完全に閲覧できない仕組みを模索しております。

    サイトの目的は、ユーザーにWEB上で映像の確認をしていただくことで、パスワードとIDによる管理が必須です。

    WordPressを選択した理由は、大勢のユーザーを簡単に登録できる仕組みがプラグインで
    可能であるから、なのですが、SNS特有のユーザー間のやり取りはいっさい不要なため、その辺りの機能を使用しない設定も必要となってきます。

    具体的な方策というよりは、まずはプラグインの導入やカスタマイズで以上のような目的のサイトが構築可能かどうか、お聞かせ願えれば、と思い投稿しました。

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • モデレーター jim912

    (@jim912)

    登録ユーザの個別ページ

    というものが具体的にどういうものか(複数ページなのか、1ページだけなのか、どういった内容を表示させるのか、表示する内容は個人毎に違うのか、グルーピングできるのか)などといった仕様的なことが一切わからりませんが、今までの経験からすると、プラグインは、一部機能程度なら利用ができる、カスタマイズもそれなりの知識が必要だと思われます。

    トピック投稿者 sakakibara-yo1

    (@sakakibara-yo1)

    返信ありがとうございます。
    言葉が足りず申し訳ありません。
    https://twitter.com/Vara_3/status/298620465247838208/photo/1

    上記に仕様図を上げてみましたので、よろしければご覧下さい。

    ユーザ管理のプラグインとしては BuddyPress WP-members 等を候補に挙げております。
    プラグインの導入自体は問題ないのですが、やはり、カスタマイズが必要な様ですね。

    ともかく、チャレンジしてみます。
    ありがとうございました。

    見てもらう人がWordPressのユーザー(=ログインできる人)である必要はありますか?
    WordPressは標準機能として、投稿記事にパスワードを設定できます。
    各投稿にユニークなパスワードを指定していいれば、
    特定のページの内容しか見られないサイトを作成できるのではないでしょうか?

    トピック投稿者 sakakibara-yo1

    (@sakakibara-yo1)

    Pineapplenさん、返信ありがとうございます。

    構築の度合いはその方法が一番楽ではないかと思いますが、
    http://hogehoge.hoge/wordpress/12345?=xxx
    のようなパーマリンクをユーザーに知らせたとして

    http://hogehoge.hoge/wordpress/
    とブラウザ上でURLを入力されてしまったらTOPページと言いますか、
    入り口を発見するのが容易すぎるのではないのかなあと思い、躊躇しています。
    回避法は有るのでしょうか?

    完全には無理でしょうけど、トップページで個別ページへのリンクなどを表示させないようにしたり、各投稿ページのスラッグもユニークなものにすれば類推されにくくは作れると思います。

    トピック投稿者 sakakibara-yo1

    (@sakakibara-yo1)

    なるほど、その線も考えてみます。

    Pineapplenさん、Jim913さん、お時間割いてのアドバイスありがとうございました!

    構築の目処が付くまで、もうしばらく解決済みには
    チェックを入れないようにします。

    購読者はユーザー名と同じスラッグの記事へリダイレクトさせる、なら以下でOK。

    <?php
    // 管理画面へのアクセス時に専用ページ(記事)へリダイレクトする
    add_action( 'auth_redirect', 'my_auth_redirect' );
    function my_auth_redirect( $user_id ) {
      $user = get_user_by( 'id', $user_id );
      if ( isset( $user->caps['subscriber'] ) && $user->caps['subscriber'] )
        wp_redirect( home_url( $user->user_login ) );
    }
    
    // 公開側へのアクセス時に専用ページ(記事)へリダイレクトする
    add_filter( 'request', 'my_request' );
    function my_request( $query_vars ) {
      if ( ! is_admin() ) {
        auth_redirect(); // ログイン必須にする
    
        if ( current_user_can( 'subscriber') )
          $query_vars = array( 'name' => $GLOBALS['current_user']->user_login );
      }
    
      return $query_vars;
    }
    ?>

    メンバー系プラグインを使うならコンフリクトにご注意。

    トピック投稿者 sakakibara-yo1

    (@sakakibara-yo1)

    kzさん、返信遅くなってしまいました。

    こ、これは、、、早速試してみます!

    フックというのは、
    OOするためにXXしなさい、そのためには■■な条件が必要です。
    しかし、もし●●なら◎◎しなさい、

    と記述するのですね。(非常に素人臭くて申し訳ないですが、、、)
    ありがとうございました!

    トピック投稿者 sakakibara-yo1

    (@sakakibara-yo1)

    と、3日前に言い放った私でありますが、

    Kzさん、上記に示していただいたコードはどこに記述するのがよいのでしょうか?

    過去の事例をフォーラムで検索し、
    functions.php最後尾やheader.phpのDOCTYPE宣言前など試してみましたが
    画面が真白になってしまうばかりで。。。
    アドバイスを戴くにもこちらの説明が足りず申し訳ないのですが、
    自分の力不足と勉強不足を痛感する毎日でございます。

    トピック投稿者 sakakibara-yo1

    (@sakakibara-yo1)

    現状報告でございます。
    kz様のコードをfunction.phpの最上部に記述してみたところ、ログイン画面へのリダイレクトが成功しました!が、今度はログインしてもしてもログイン画面へリダイレクトされる事になっております。原因及び解決策を模索中です。

    トピック投稿者 sakakibara-yo1

    (@sakakibara-yo1)

    報告です。
    Kz様のコードを
    固定ページのテンプレートファイルpage.phpの最上部
    に記述したところ、思うような動作ができました!ありがとうございます。

    ただ、ユーザーが A01, B02 と二人いた場合

    hogehoge/wordpress/A01

    とアクセスしたA01さんですがログイン後、

    hogehoge/wordpress/B02

    とURLを書き直すとB02さんのページが閲覧できてしまうので、
    それぞれの個別ページに公開パスワードを設定する事で
    登録ユーザの個別ページのみ閲覧でき、編集などの権限は与えず、
    他のユーザのページは完全に閲覧できない仕組み

    を実現した、という事にします。
    この辺りはPineapplenさんのアドバイスを参考にしました!

    今回、ユーザー名と固定ページのスラッグを同じにする事で個別ページを
    判別、表示させましたが、個別ページにユニークな仕掛けを設置すれば、
    スラッグでなくても判別が可能になるのかしら・・・?とか思ったので、
    今後そちらの方面も探ってみようかと思います。

    アドバイスを下さった方々には本当に感謝します。ありがとうございました。

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • トピック「登録ユーザーがそれぞれの個別ページにのみアクセス」には新たに返信することはできません。