Home > blog > wordpressで非公開コミュニティサイトを作る(1)認証機能をつける

wordpressで非公開コミュニティサイトを作る(1)認証機能をつける

  • 2009-04-16 (木) 4:13
  • blog
  • |
Google Adsense

wordpress!

wordpressを使い会員のみのコミュニティサイトを作るべく、それに必要そうな部分をメモがてら。
まずは一番肝要な、認証制度から。

まえおき

長い事やっているMMORPGの仲間内用のサイトをリニュするタイミングがあったので、wordpressで構築してみようかなと。
一度チャレンジしてほぼ完成まで持っていったものの、wordpress自体のバージョンがすでに0.2ほどアップしてしまい1、汎用性のあるように作れてなかったために半お蔵入りになった過去を踏まえ、もう一度チャレンジする事に。
今回は以前の反省を踏まえ、基本機能のみ完成した時点で速攻公開し使ってもらう(とはいえここで公開はしないが)、後でwordpressアップデートや機能拡張に対応できるようなつくりを意識する、この二点を意識しておく。(手馴れた人なら当たり前なんだろうけど、前回始めてwordpress使ったので何も考えてなかった)

んでまずは基本であるユーザー認証をつける事になる。
認証周りに関する条件はユーザー管理関係も含めて以下。

  1. ユーザー登録は全部俺がやる
  2. 大まかに管理者、一般、体験中、の三段階の権限構成
  3. 管理者は俺なので全権限onで特に何も無し
  4. 一般は記事作成とかは出来るけどwordpress自体の設定は出来ない
  5. 体験中は体験中の人専用のコンテンツしか見れない
  6. 注意すべきは体験中専用とは、記事は書けるけど編集出来ない、ではなく、それ用のページしか見れない、つまり権限判別で振り分けする

こんな感じかな。
ポイントは体験中の扱いで、書いたとおり権限、無いしユーザーレベル(後述)による振り分けを行うのが少し面倒。
けどこうしないとwordpressでユーザーアカウントの一元管理が出来ないので面倒ってのと、wordpress側で記事やページ作成して体験中の人に公開すべきかどうかを判別するだけで記事内容のコピペとか無駄手間を減らしたい、という理由から。

余談だがなんだよ“体験中”って、と感じる人が大半だと思うが、なにぶん使用想定環境がMMORPGの仲間内用なので、いわゆるギルドとかゲームによってはクラン?、この手の集団に一時的に加入して正式加入するかを判断する時期の事だったりする。
ゲームごときに認証wwwwwというのはもっともな話だけど、ゲームだけに妬み嫉み荒らし秘密情報だとかあれこれあったりするのだ。

.htaccessでBASIC認証も作れないのださ~ぃ!

ユーザー管理に関してwordpressを知らないけど俺よりプログラムとか詳しい人に言うと、.htaccessつくりゃすぐじゃん的回答があるのだが、wordpressでの.htaccessによるBASICとかの認証は、不可能ではないにせよちょっとむずかしいようだ。

未定… – WordPress の .htaccess 書き換えを止めたい (前置き) , WordPress の .htaccess 書き換えを止めたい (改変内容) , 最近

つまるところ、wordpressが.htaccessを自動生成・書き換えをしているという話だ。
この方法だとwordpress本体のプログラムの書き換えが発生する、つまりwordpress自体のアップデートのたびに書き直すハメになる可能性が出る。
これは面倒なので別の方法でいく。

pluginで何かねーの?

検索すると結構hitするように、以前はこれを使っていた。

Angsuman’s Authenticated WordPress Plugin – Password Protection for Your WordPress Blog

んだけどすでに更新されておらず(有料版にサポートが移行したのか、標準で関数実装したからなのかわからないが)、以前使っていたwp2.5時代ですら結構な書き換えが必要だった事から、今回はさすがに無しで。

他にも認証周りのpluginは結構ありそうなのだが、特定権限のユーザーのみあれこれ変えるという特殊な目的があるので、今回はpluginの利用は見送る事に。
普通に認証だけできりゃいいよって人はPlugin DirectoryでAuthenticationとかで検索すれば色々出ると思う、ちなみにplugin検索精度がこないだやっとマトモになったので助かる。

WordPress › WordPress Plugins

ログインしてないと閲覧出来ないようにするには

じゃ本題へ。

wordpressでのログインというと普通にblogを使用している人にとっては、記事を書いたりする管理画面に行くためにはパスが必要でそれがログイン、だと思う。
間違ってないんだけど、wordpress的には上記のログイン動作をしないでblogを見ている状態と、ログインしてから管理画面からblogに戻って見ている状態では、見た目には同じでもちゃんと区別をつけている。
この感覚が最初wordpressをいじりだした時は分かりにくかったが(主にloginを意識させないテーマが多いせいで)、ログインした状態じゃないと見れない記事を書いたり(非公開記事)、以前書いたログインした状態ではGoogle Analyticsにトラッキングさせないpluginだとか、あれこれあるんで、こーゆーの使い出すとつかめてくる。

参考:Google Analyticsの勉強メモ(9) WordPress pluginの検討 – atl*weblog

で、今回やる認証ってのはこのログインをしてないとblogが見れないようにする。
具体的な遷移は、blog自体のトップページだろうが記事単体だろうがどこのアドレスに移動しようとしても、まずログイン画面に飛ばされて、ログインしたら見れるようになる、というよくある流れ。
そのやり方はめちゃ簡単でauth_redirect()って専用の関数があった。

Function Reference/auth redirect « WordPress Codex

こんなの昔からあったっけかなぁ、なんだよ簡単すぎんじゃん。

実際の使い方はis_user_logged_in()っていう、ログインしてるかどうか確認する関数と一緒に利用して


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

こんな感じで書くと、ログインしてない場合はログイン画面に飛ばされるようになる、これをテンプレートのheader.phpの最初のほうにでも書いてあげるといいと思う。
なんか調べてるとwp-blog-header.phpっていうファイルに書いている人もいるようなんだけど、これだと確かに楽なんだけどwordpress本体のプログラム部分だから、やっぱwordpressのアップロードとかあった時消えちゃう可能性あると思うんだけどどーなんだろ。

テンプレート構成で、header.phpを読み込まない部分があるなら別だけど、普通記事だろうがページだろうがheader.phpは読み込むと思うんで、header.phpでいいんじゃないかなぁ、自信ないけど。

と思ったら、画像直リンとかってケースもあるんだった。
うーんどうしたもんかな。

とりあえずwp-blog-header.phpに記述する方法を試してみたら…あれ?画像そのまま出んじゃん。
てことは画像直リンは別の方法で対策する必要がある、そしてwp-blog-header.phpに書こうがheader.phpに書こうがかわらなそうだなぁ。
画像以外でheader.phpに書かれてるんじゃ防げないアクセスってなんだろうなぁ、思いつかないしそこまで完全にアクセス禁止する事もないんでいいか。
どうしてもマズいなら.htaccess書けばなんとかなりそうだし。

  1. wp2.5→2.7になってしまった、管理画面が大幅にレイアウトが変わった事で、初心者向けの記事作成リファレンスのほとんどが死にモチベーションが維持出来なくなった。 [戻る]

Comments (Close):8

viva***u 09-04-16 (木) 9:07

IT土木脳には楽しみなコンテンツだからがんばって><

daruman 09-04-17 (金) 3:36

ほんとかよ、きみ興味なくね?w

viva***u 09-04-21 (火) 15:06

実際は1記事3回くらいよんでるよw主にFeedでねw

多分、仕事でいうと、
これからゼロから開発ってところは減ってくるから発注は基本改修だろうし、
自分が改修苦手だから、
「何かすでにあるものを基本としてそこから派生してシステムを構築」っていう手順を
他人がどうやってやるのか興味あって、なんかつかるとこあったら使ってやろうと思ってるw

daruman 09-04-24 (金) 4:11

改修って言うと夢がないが、車輪の再開発をしない、と曲解すれば既に他の人が作って出来ている部分は任せて新しい所に注力出来る!
このポジティブシンキングは恣意的すぎたか…。

On line binary option trading brokers 13-04-10 (水) 13:21

xnaemxfcmph, Binary options trading, hqgzcsn, [url=http://binary-options-australia.com/]Binary Options Brokers[/url], zERgqGu, http://binary-options-australia.com/ Binary strategy forex options opposing, nASAcDq.

dungeon hunter 4 hack 14-02-24 (月) 11:36

I like the valuable information you provide in your articles.
I will bookmark your blog and check again here frequently.
I’m quite sure I’ll learn many new stuff right here! Best of
luck for the next!

mobile football games 14-03-21 (金) 20:28

I am not sure where you’re getting your info, but great topic.
I needs to spend some time learning much more or understanding more.

Thanks for wonderful information I was looking for this information for my mission.

www.grartsocial.com 14-06-12 (木) 14:11

Hi everyone, it’s my first pay a quick visit at this web page, and piece of writing is really
fruitful in support of me, keep up posting
these articles or reviews.

Trackbacks (Close):8

pingback from wordpressで非公開コミュニティサイトを作る(3)ユーザーレベルで表示内容を変更続き - atl*weblog 09-04-26 (日) 15:50

[...] 参考:wordpressで非公開コミュニティサイトを作る(1)認証機能をつける – atl*weblog [...]

pingback from note » Wordpressでサイト全体にパスワード認証 |note 10-01-22 (金) 11:24

[...] http://webhackr.blog105.fc2.com/blog-entry-87.html http://blog.sugulab.com/?p=492 http://weblog.atl-r.net/blog/tipstomake_communitysite1/ [...]

pingback from WordPressでベーシック認証させる方法まとめ 11-04-15 (金) 19:10

[...] wordpressで非公開コミュニティサイトを作る(1)認証機能をつける http://weblog.atl-r.net/blog/t……nitysite1/ asklife|IT&Life > コンピュータ・IT > wordpress > [...]

pingback from WordPress で会員制サイトを開発する!(0) 目的を明確にする | ZERO BASE 11-08-30 (火) 16:01

[...] 「 atl*weblog::wordpressで非公開コミュニティサイトを作る(1)認証機能をつける」という公開記事がそれですね。ちょっと引用しておきましょう(本サイト用にちょっと言葉を変えてはい [...]

pingback from WordPress で会員制サイトを開発する!(1) 認証画面の設定 | ZERO BASE 11-08-30 (火) 18:21

[...] 「atl*weblog::wordpressで非公開コミュニティサイトを作る(1)認証機能をつける」 [...]

pingback from できるかな? - Web編 » Blog Archive » Wordpressに認証をかけてみた。 11-09-14 (水) 22:01

[...] Standing Tall さま http://tekapo.com/st/wp/plugins/restriction/ [...]

pingback from » WPのサイト全体を会員限定にする ちょこっとメモメモ 11-12-11 (日) 0:26

[...] 参考サイト:http://weblog.atl-r.net/blog/tipstomake_communitysite1/ Filed under プラグイン | Leave a comment [...]

pingback from 書山有路、学海無涯 » Blog Archive » WordPressで会員制サイトを作るときの勘所  12-03-07 (水) 9:47

[...] wordpressで非公開コミュニティサイトを作る(1)認証機能をつける http://weblog.atl-r.net/blog/t……nitysite1/ [...]

Home > blog > wordpressで非公開コミュニティサイトを作る(1)認証機能をつける

Calendar
« 2017 年 4月 »
M T W T F S S
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Search
ABM | AnotherBookmark™
heteml
heteml
amadana
amadana(アマダナ)
feed
Meta

Return to page top