WPで会員制にするプラグインを探せ
WPはブログ寄りのエンジンなので、DrupalやXOOPSのように標準でメンバー登録させ、会員だけに見せるコンテンツを作成する見せ方はちょっと苦手なわけ1ですが、そういう事を実現するプラグインはきっとあるはずなので、そのあたりを探してみることにする。
実現したい事をまとめてみます。
1)会員登録した人だけに見せる記事、ページを作成したい。 Disclose-Secret ver2.4で解決
2)会員のレベルの調整と、記事ページをどのレベルに見せるかのコントロール Disclose-Secret ver2.4で解決
3)記事のHTML(またはテキストプレーン)なメルマガの運用 残るはこれ
4)コメントをつける際に、会員登録した人だけがつけられるように。 Disclose-Secret ver2.4で解決
5)会員登録した人だけが、記事を書けるように。 Disclose-Secret ver2.4で解決
6)できるだけ、標準で持つ機能で独自拡張は使用したくない。 Disclose-Secret ver2.4で解決
標準でできる機能
A)上記の4、5は可能。1も非公開にすれば、投稿者だけが見れるようになるはず。
B)ログインレベルは1~10まで持っている
C)記事、ページに独立したパスワードを持たせる事は可能。
D)記事ページのステータスにより、「公開、草稿、非公開」の設定により非公開にすれば標準で持つユーザ登録した人しか見れない(そもそもログインしていなければリンクが生成されない)。これにより、上記の1は標準で実現可能。ただし、標準では、ユーザレベルやユーザ単体でのアクセス制限ができない。
ようするに、記事、ページ、特定カテゴリ等をだれに見せるかのコントロールができれば実現できそうですね。探すのはそういうプラグインかな。
どうするか迷う部分
あ)RSSへの出し方をどうするか?
い)全文検索をかけたときに、どうなるか?
う)携帯向のプラグイン(現座時あるもの)を考えた時の連動をどうするか?
え)分かれているサイト同士をDrupalのような共通ログインさせるような機能をどう実現するか?
いつもの習慣で、プラグインを探す時はまずこのあたりから始めます。
http://wp-plugins.net/
http://codex.wordpress.org/Plugins/Restriction
↑の日本語訳
http://tekapo.com/st/wp/plugins/restriction/
検索ワードとしては、
Restriction
Members
password
user level
あたりでしょうかね。ご飯食べてから続きを。
少し違うアプローチですが、XOOPSにWPプラグインを入れて実現するやり方もありますかね。こっちのほうはまだ手付かずなので、最終手段としてとっておきたいです。そのほか、Drupalの一部機能をWPに融合させる方法とか。これは結構作りこみが必要ですね。あと、まだ触ったことはないのですが、Geeklogも一回入れてさらっと検証してみたいですね。Geeklog 1.4x ドキュメント
あとは、まだ試していないですがJoomlaのJD-WORDPRESSモジュールを入れるという方法もありそうです。
WP Group Restriction1.0 RC1 結論(ケースにより有効。今回は却下)
標準で持つユーザを、独自拡張のアクセスコントロール機構(グループ単位)をpageに反映させるためのプラグイン。特集記事などをpageで管理しているケースでは有効。通常の記事には適用できないみたいですね。
2.0.6meで確認。2.1.2jpでも確認。ただし、2.1.2jpでは多少SQLで警告が出る。本格的に使うにはコアに手を加える必要あり。
で、設定したページ(page)にアクセス制限がない場合は、下記のように。
Disclose-Secret ver2.4 結論(有効。今回はこれを採用)
これはそれっぽいね。WP2.1.2で動作。これが一番理想に近いかな。たぶん、標準でもっているステイタスを記事やページに細かく適用させることができる。たとえば、登録してあるユーザの誰にアクセス権をつけるかとか、レベル1~10のグループ一括につけるとかが可能。
wp-includes/version.php
の該当部分を、
$wp_version = ‘2.1.1′;
にして動作させた。弊害があるかもしれませんが。
WP-Members ver1.8 デモサイト 結論(ある意味、面白い考え方である。改造ベースにいいかも。今回は不採用)
こっちから試してみようかな。
WP2.1.2jpにて動作。どうやら、独自のメンバー登録の概念のようです。
住所などは必須項目にするかどうかの選択はできるが、消す(表示しない)することはできないのでカスタムですね。
上記表示の時のプラグインの設定は下記。
Username(ID)には、日本語も通る仕様。各テーマのループ部分に記載することにより、一律でログインしないと見せないようにすることが可能。記事やページごとにコントロールすることは不可能。RSSはコアに手を加えることで、できそうな説明があるがまだ試していない。
通知のメールも化けないし、全体的によくできているかな。テンプレートに記載する部分は赤字の部分。
// begin wpmem plugin
// if the user is logged in or if the wp-members plugin is turned off show the loop.
if ( ($securify != “false”) || (!function_exists(’wpmem’)) ) {
if (function_exists(’wpmem’)) { wpmem_status($securify);}
if ( ($securify == “true”) || (!function_exists(’wpmem’)) ) {
// end of the 1st part of wpmem plugin
?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
省略
ループ終了部分
<?php endif; ?>
<?php
// close the statements from wpmem plugin
}
}
// end of the wpmem plugin ?>
タイトルだけ一覧で見せるようなテンプレートを作成したりしてやるといいのかもですね。
- ログインレベルの概念はあるが、記事やページ等のコンテンツをどのログインレベルに見せるかのコントロールが標準ではできない[戻る]