マルチサイトの子サイトで会員専用サイトをつくる

マルチサイトの子サイトをMembers Onlyで会員専用サイトにした場合の不具合検証

 なまら北海道だべさの会員サイト、wp-membersというプラグインのおかげで、ログインさえできればユーザーが登録情報を変更することができ目立った問題はないようである。メールアドレスやパスワードは各自で変更できたほうが何かと便利だと思う。この辺は満足している。しかし・・・。

1、ユーザー登録を自動でできない

 サイト全体に鍵をかけることになるので、ユーザーに自分で必要事項を入力してもらって管理人が承認するだけというやりかたができない。本当はこれができるのが一番ありがたいのだが、今のところ、メインサイトのメールフォームを使い、事前にユーザー情報を送信してもらい、私がIDとパスワードを発行する。

2、MS Custom Login

 ログイン画面もオシャレに変更できた。これで完璧だ!と思ったのだが、ここで問題が発覚。パスワードを忘れたときの設定がメインサイトに飛んでしまう。おそらくこの一点が解決できれば問題なくいきそうなのだが、結構重要なところなので無視できない。

image

WordPress › フォーラム » マルチサイトのwp-login.phpについて

あまりやりたくないのだが、テーマのfunctions.phpの記述を変更することでリンク先の変更はあっさり可能だった。しかし、引き続き第2の壁が・・・

image

これに入力して新しいパスワードを取得をしようとすると、メインサイトのログイン画面に飛んでしまい、なおかつ送られてくるメールもメインサイトのもの。こうなってくると、先ほどのfunctions.phpの設定もわざわざやったのに・・・と無意味に感じてしまう。バージョンアップで再度設定が必要になることはできるだけ避けたいものである。

3、解決策をさぐる

 私がいろいろ検証した結果、サイト全体に鍵をかけるMembers Onlyではどう頑張ってもこの状態である。個別ページに鍵をかけるwp-membersのほうでは、その範囲内であるが特に問題は感じられない。ユーザー登録もパスワード関係も理想の通りというところである。トップページやサイドバー、記事の見出しが見られても問題ないのであれば、wp-membersでやるのが一番簡単そうである。しかし、当サイトの場合、会員サイトは完全にメンバー限定にしたいと思っている。そうなると解決策の一つは、先ほどのフォーラムの続きに挑戦することである。しかしながら、バージョンアップの度に修正するのも面倒である。

 もう一つは、wp-membersに対応させることである。外部からみられる部分に出す情報と、ログインしなければ見られない情報を整理すること。チラリズム的な感じにはなってしまう。宣伝効果という意味では悪くはないかもしれないが、気を使うのがデメリットである。

 最後はは、あきらめることである。会員の数も少ないのだから、「IDとパスワードを忘れた場合はメールで聞いてね!」これは超簡単な方法なので最終手段として取っておくことにする。

4、wp-membersを最大限に活用する方法を探る

 やはり、総合的に考えると、wp-membersは良さそうである。そこで、サイトのトップをログインフォーム、その他ウィジェットは、表示設定でログインしていないときは表示しないというように変更してみた。これならば表示されているものも当たり障りのないものに限定でき、おおむね良さそうである。ただ、まだあった。最後の問題として残るのが関連記事と今までにいただいたコメント。これもログインしていないと表示できないようにすることが必要である。もう一息!

5、shingle.phpの編集

<?php if(is_user_logged_in()):?> と <?php endif;?>で関連記事とコメントの部分を囲む。

うまくいった!

PHP Code Widget

 ならば、ウィジェットで設定でもできればテーマが更新されても大丈夫では!と思いこれで試してみましたがうまくいかず・・・。でも、なんとかここまででやりたいことは形になってきました。明日は最終的なチェックをして完成といきたいところです。

スポンサーリンク
スポンサーリンク

シェアする

フォローする

スポンサーリンク
スポンサーリンク