ワードプレスで会員専用ページを作る時に最低限行うべき4項目

仕事でワードプレスを使って、会員専用サイトを作る機会があったので、今回はその時に私が設定した5項目について備忘録として残しておくことにした。ちなみにプラグインは、ほとんどなし。ほとんど、テーマをいじって作った

(てか2、3日ググりまくってやっとできから、めっちゃ嬉しかったし、みんなに自慢したいw)

 

もし、同じようなサイトを作らなくてはならなくなった時には、ぜひ参考にして頂きたい。

 

 

さて、今回作らなくてはいけなかったサイトが、下記のような会員サイトである。

  1. サイト全体にパスワードをかける
  2. ログインした人には、中身をいじられないようにする
  3. 会員サイトの中にさらにもう一つのパスワードでロックされたページを作る
  4. 会員がログインした後、10分程度操作が行われなかった場合は、勝手にログアウトするようにする(←こいつがマジくせ者)

 

正直言って、4番目にほとんどの時間が取られたと言っても過言ではない。これの情報がマジでグーグルにない。(ヒントはあった。)

それでは、一つずつ順を追って説明していこう。

 

サイト全体にパスワードをかける

 これに関しては、ちょっとググれば色んな方法が出てくる。

一番簡単なのは、プラグインPassword Protected」をインストールすることだ。ただし、この方法だと、のちに設定しなくてはならない、ログアウトをさせる方法が一向に見つからなかったため、断念する。

 

そこで私が導入したのが、ワードプレスのユーザー機能(購読者を今回は使う)を使った、ログイン方法だ。

まず、ログインしないとサイトが見れないようにするために、外観>テーマの編集でheader.phpをいじっていく。

導入するコードは、下記だ。

 

<?php if (is_user_logged_in()){
}else {auth_redirect();
}; ?>

 

ちなみに、このコードはheader.phpの一番上に置く。これを説明してた人は、header.phpに置くとしか書いてなかったが、私はどこに置くかも書いて欲しかった。なので、私は親切にも、置いた場所の画像も載せておく。

f:id:biziken21:20171126023227p:plain

 ↑こんな感じ↑

これで、サイト全体にパスワードをかけることができた。

なぜ、これでパスワードがかけれるのかは知らないが、みんなも知りたいのは、パスワードのかけ方であって、その原理ではないはずだ。

もちろん私も知らない。

 

 

ログインした人に、中身をいじられないようにする

1で、サイトにパスワードが設定できたが、作ったばかりのサイトであれば、サイトに入れるのは、管理者であるあなただけだ。他の人にも見れるようにして、なおかつ、サイトの中身をいじられないようにするためには、購読者のユーザーを追加する必要がある。

 

ワードプレスのダッシュボードの中に、ユーザーという項目があるので、そこから新規購読者ユーザーを登録する。

f:id:biziken21:20171126024510p:plain

 

管理者はあなたのアカウントで、購読者は会員がログインする時に必要な アカウントだ。購読者のアカウントは、サイトの閲覧しかできないので、中身をいじられることはない。

なお、購読者の設定として一つ設定しておきたいのが、下記の部分だ。

f:id:biziken21:20171126025049p:plain

サイトを見るときにツールバーを表示するの部分のチェックをはずすことだ。

このチェックがついていると、サイトを閲覧するときに、ツールバーが出て、この個人画面に入ることができてしまう。ここからサイトの内容を変えることはできないが、個人のパスワードを変えたりできてしまう。(今回は、社内共有ページのようなものだった。なので、パスワードを変えられると他の人がログインできなくなるので、今回はチェックを外した。ただし、それぞれを個人のアカウントで設定したい場合は、チェックを入れて、パスワードを変えれるようにしても良い)

 

これで購読者が設定できた。これで、サイトのホームページにアクセスしようとすれば、下記のようなページが表示される。

 

f:id:biziken21:20171126025932p:plain

 

 あとは、購読者のアカウントでログインすれば、立派な会員サイトの出来上がりだ。

 

 

⒊会員サイトの中にさらにもう一つのパスワードでロックされたページを作る

これに関しては、設定はめっちゃ楽で、投稿ページ、固定ページの編集画面で設定することができる。

f:id:biziken21:20171126030843p:plain

 

それぞれの編集ページに、パスワード保護という項目がある。ここでパスワードを設定して、公開すればパスワードで保護されたページを作成することができる。

なお、このパスワードを設定するとサイトでの表示が少し変わって、タイトルの前に「保護中」という文字が出てしまう。

これをいろいろ変更することができるが、それに関しては、より詳しい記事のリンクを貼るので、ここでは割愛させてもらう。(めんどい)

 

【WordPress】パスワード保護ページをカスタマイズ!カスタムフィールドでテキスト変更できるようにしたりする

 

 

⒋ 会員がログインした後、10分程度操作が行われなかった場合は、勝手にログアウトするようにする

私が今回のサイト作りで一番苦労したのが、この強制ログアウトの実装だ。まず、いろいろと強制ログアウトのことをググりまくっていると、出てくるのは、管理者が一定期間操作を行わないときに、勝手にログアウトするというものだ。

ただ、管理者は今回ログアウトする必要はない。ログアウトして欲しいのは、購読者の方だ。 しかも、10分程度という時間指定までついている。

めげずに、色んなサイトを回遊してみるが一向に、それらしい情報が出てこない。

 

「なんとなくだが、ログイン情報というのは、ブラウザのCookieを使って保存されるはずだ。」

 

という浅はかな知識で、Cookieのことを調べても一向に分からない。(早く書けや)

 

 

そんなとき、一つの記事に出会った。

me2.jp

実は、この中で書いてある方法では、私は実装することはできなかった。

しかし、かなり重要なヒントを得ることができた。

wp-includes/pluggable.php の831行目、「wp_set_auth_cookie」が、クッキーの設定をしている部分。

「 この一文は、かなり重要なのではないか?」

 

そこで、レンタルしているロリポップのサーバーのFTPの中を見てみる。

f:id:biziken21:20171126033337p:plain

あった・・

中身を見てみる。

831行目なんか知らんが、一気にスクロールして、それっぽいところを探す・・

すると・・・・

f:id:biziken21:20171126034000p:plain

あったぞ・・

いかにも、Cookieを管理してそうな構文が・・

よく分からんが、全部10分にしてやる!!!!!

f:id:biziken21:20171126034135p:plain

 

すると、なんと、ついに・・・・

 

 

10分で強制ログアウトできたー

 

 

歓喜!圧倒的歓喜!!

やはりCookieに目をつけたのは、間違ってなかった。

 

私は、ついに10分で強制ログアウトするサイトを作ることができた。(この3つ全てを変える必要は本来ないかもしれないので、あくまで実行する場合は、ちゃんとバックアップ取りましょう)

 

 

 

以上が、私が今回会員サイトを作る過程で行なったことである。

正直このようなサイトを作ることは、滅多にないと思う。ただ、もしどれかの項目でも導入しても良いものがあれば、ぜひ参考にしてもらえればと思う。

 

(多分、こういうノウハウページをこんなテンションで書いてる人、ほとんどいないんじゃないかな・・・)