Word

Hi, I detected your main language is not Japanese. I have an english version of about me, so please try it!

この投稿は6年半前の記事です。 情報が古くなっている可能性があるので、その点ご了承ください。
2011 年 1 月 28 日 2,506日前)
8,146文字 (読了時間20分)

SPONSORED LINK

ミニコmeのテーマ作成中!
ミニコmeのテーマ作成中! 結局買っちゃった

半ば放置ぎみだったミニコme!の開発を再開したことと、4月に控えている破滅派大リニューアルに向けてWordPressの会員制機能を作っているので、それについて情報をまとめておきます。メモなので、である調です。

前提:WordPressデフォルトのユーザーシステム

ユーザーの権限と種類を理解する

WordPressにはデフォルトで5種類のユーザー種別(管理者・編集者・投稿者・寄稿者・購読者)が存在する。これに「非登録ユーザー」を加えると、デフォルトで6種類のユーザーが存在することになる。

一人の人間がブログとして利用するだけであれば、管理者以外は必要ない。有料ブログなどを展開するのであれば、管理者・購読者・非登録ユーザーとなる。複数の投稿者が存在する場合(ニュースブログなど)は編集者・投稿者・非登録ユーザーとなり、これにゲスト等後者が加わる場合は寄稿者を利用する(もっとも、寄稿者にWordPressの管理画面をいじらせることは想定し辛いが)。登録ユーザーに対して特別な何かを提供する場合は「購読者」が役に立つ。

新規ユーザー登録の設定

管理画面で「設定 > 一般」で「誰でもユーザー登録ができるようにする」にチェックを入れれば、誰でも自由に登録できる。新規ユーザーのデフォルト権限も選べる。権限グループの詳細はCodexのユーザーの種類と権限にある。

なお、購読者ができることは「ログイン」および「プロフィールの編集」のみであるため、このままではあまり役にも立たない。プラグインの導入等を行うことではじめてユーザー登録が意味を持つ。

登録の流れと問題点

新規登録を可能にすると、ログインページ http://example.jp/wp-login.php に新規登録へのリンクが表われる。メールアドレスを入力して登録をするとパスワードが書かれたメールが届く。主な問題点は二つ。

  1. パスワードが平文で書かれているメールが届くので、セキュリティ的にちょっとアレ
  2. 大量のボットに襲われ、スパムアカウントが増加する

ユーザーの登録およびログインのカスタマイズ

ユーザー登録フローの改善

Theme My Loginというプラグインを利用する。日本語ファイルはWordPressプラグイン Theme My Login を日本語化しましたで公開されているが、ちょっと足りない部分もあるので、自力で日本語化してください。

Theme My Loginは下記の機能を持っている。

  • 管理画面( http://example.jp/wp-admin 以下のページ)に入れる権限と入れない権限を選べる
  • メールによる認証機能を使えるので、スパムアカウントが有効化しない(pendingという権限になり、ログインできないまま)。削除はしてくれない。
  • パスワード喪失時、通常ならパスワードがメールで送られてくるが、「ユーザーにパスワードを入力させる > 承認メール送信 > 承認リンクを踏んでアカウント有効化」というフローが取れる。
  • ユーザに対して送信するメール(登録時、パスワード変更時、etc)の文面を入力できる。
  • ログインページをカスタマイズできる。ただし、表示されるフォーム自体は既存のものと同じなので、マークアップを変更することはできない。いま(2011-06-08時点)はできるっぽい。参考:Additional fields in register-form.phpそういうプラグインはあるのかもしれないけど、探してない。デモはこのサイトの「ログイン」を参照のこと。

商用でWordPressを使うときは、とりあえず「登録〜ログイン」までをこのプラグインに任せてしまうと楽だと思う。

ユーザーのログインをカスタマイズ

メールアドレスでログイン
メールアドレスでログイン

最近のWebサービスではユーザーのログイン名ではなく、メールアドレスでログインさせることが多い。WP Email Login というのがあるので、これを使うとメールアドレスでログインさせることができる。ただし、英語のメッセージがJavascriptにベタ書きされているので、これは要修正。上述のTheme My Loginではメールアドレスでもログインできることが判明。フォームのラベルだけ変えれば問題ないと思う。

退会をできるようにする

退会をできるようにするプラグインは一応あるっぽいけど、未検証。基本的には関数wp_delete_userで削除できる。ただし、この関数は管理画面専用なので、公開画面で使う場合は別途読み込む必要がある。

//関数の記載されたファイルを読み込み
require_once ABSPATH."/wp-admin/includes/user.php";
//ID 10のユーザーを削除
wp_delete_user(10);

仮に登録していたユーザーが投稿(とそれに準ずるもの。カスタム投稿タイプも含む)を保持していた場合、その投稿を別のユーザーに割り当てることはできる。しかし、それ以外のユーザーに紐づく情報があった場合、単純にこの方法でユーザーを削除してしまうと、それらの情報が宙ぶらりんになってしまう。これについては後述する。

追記@2011-10-06 退会できるプラグイン作りました。

ユーザーの権限・登録情報に関するもの

ユーザーの権限を変更

Capability Managerというプラグインで権限を変更できる。

新しい権限グループを作ることもできるが、5個も10個も権限を作ったところでカオスになるだけだと思うので、デフォルトのをカスタマイズするのが楽だと思う。

ユーザーの権限を激しく変更

シリアライズされた長大な配列
シリアライズされた長大な配列

前述した権限グループは自作することもできるし、既存の権限グループに権限を追加することもできる。権限グループは実のところ、ただの配列である。WordPressの設定を保存するテーブルwp_optionsを覗いてみると、wp_user_rolesというオプション名で配列のままぶっ込まれている。

これを変更すれば権限も変わるのだが、それだとアップデートのときにどうなるのかわからないので、なるべくAPIを利用する。また、WordPressをカスタマイズするときは、データベースの中に入っているものをあまりいじらないようにした方がいい。

ユーザー権限はWP_Rolesというクラスが管理しているが、WordPressのいいところは「クラス? なにそれおいしいの? グローバル? 何がいけないの?」というレベルを脱していない人でもわりとなんとかなるところだ。

Ultimate Guide to Roles and Capabilitiesというエントリーにユーザー権限を司るクラスとその詳しい挙動が書いてあるが、細かいところはともかく、基本的にはグローバル変数$wp_rolesを呼び出し、add_capやremove_capメソッドを実行、その後current_user_can関数を使えばなんとかなる。

function customize_author_role(){
   //グローバル変数を呼び出し
   global $wp_roles;
   //投稿者よ、墓に唾をかけろ!
   $wp_roles->add_cap("author", "i_spit_on_your_grave");
   //投稿者がログインしている場合は...
   if(current_user_can("i_spit_on_your_grave")){
      //ここで唾を吐く
      do_spit();
   }
}
add_action("init", "customize_author_role");
// ※initフックより前だと、ユーザーオブジェクトが存在しない

ユーザーの権限をチェック

前述の通り、current_user_can関数が判定してくれる。

if(current_user_can("do_something")){
     //なんか行う
}

カスタマイズの拡張性を考えると、権限を利用することでユーザーの挙動を制限する方法が安心。

ユーザーの登録情報を変更

AIMとか誰も使わない
AIMとか誰も使わない

ユーザーには「コンタクトメソッド」という部分があって、デフォルトでは以下の4つ。

  1. Webサイト
  2. AIM
  3. Yahoo IM
  4. Jabber / Google Talk

下の3つはいらない子なので、これを消す。もし他に何か付け加えたいの方法がある場合(Twitterアカウントとか)は、以下の方法でできる。wpbeginner.comに書いてあった。もうちょっと汎用性を高くしたものをgistに置いてある。

/**
 * デフォルトのコンタクトフィールドを削除する
 *
 * @param array $contactmethods
 * @return array
 */
function hide_profile_fields( $contactmethods ) {
	unset($contactmethods['aim']);
	unset($contactmethods['jabber']);
	unset($contactmethods['yim']);
	return $contactmethods;
}
add_filter('user_contactmethods','hide_profile_fields',10,1);

/**
 * デフォルトのプロフィール編集画面に新しいコンタクトフィールドを追加する
 *
 * @param array $contactmethods
 * @return array
 */
function original_profile_fields( $contactmethods ) {
	$contactmethods["twitter"] = "Twitter";
	$contactmethods["facebook"] = "Facebook";
	return $contactmethods;
}
add_filter('user_contactmethods','original_profile_fields',11,1);

ユーザーの登録情報に複雑な情報を追加

コンタクトメソッドではまかないきれない複雑な情報を追加したいときや、もうちょっと複雑な処理を行いたいときは、以下の方法を使う。

  1. ユーザーのプロフィール編集画面にフォームを追加
  2. ユーザーのプロフィール更新時にフォームのデータをDBに挿入
//自分のプロフィール編集画面にフォームを追加
function edit_profile_form(){
   global $user_ID; //現在のユーザーIDを取得
   //フォームを表示
   echo '<input type="checkbox" name="pister_option" value="'.get_user_meta($user_ID, 'pister_option', true).'" />';
}
add_action("profile_personal_options", "edit_profile_form");

//フォームを更新したときのアクション
function update_profile(){
   global $user_ID;
   //$_POSTデータを保存したりする
   update_user_meta($user_ID, "pister_option", $_POST["pister_option"]);
}
add_action("personal_options_update", "update_profile");
プロフィール画面に挿入できるフォーム
プロフィール画面に挿入できるフォーム

上記で紹介したのは、ユーザーが自分のプロフィールを更新する場合。管理者が他のユーザーの情報を更新するときにフォームを追加したい場合は、アクションフックがそれぞれ “profile_personal_options > edit_user_profile”, “personal_options_update > profile_update” となる。より詳しい情報はcodexのアクションフック一覧を参照のこと。

ただし、これは管理画面でのみ使える方法である。同時にフォームも作り込む必要があるケースがほとんどだと思われる(ラジオボタンを切り替えると必須項目が変わるとか)ので、がんばってほしい。

データのCRUD (Create, Read, Update, Delete) に関しては、*_user_meta系の関数(関数リファレンスの「ユーザーと投稿者の関数」を参照のこと)で可能。「SQL? それおいしいの?」というお気楽PHPerでも簡単に利用できる。

ユーザーの共有

複数のWordPress

WordPressは3.0からMultisiteという機能を持つようになり、複数のブログを運営できるようになった。しかし、デフォルトだとそのユーザーは自動で共有されず、手動で割り当てていくことになる。

WordPress.comのようなサイト(ブログホスティング)を作りたいならばそれでもいいが、二つのブログのユーザーを共有したい場合(ブログAの購読者=ブログBの購読者にしたい)は、それだと手間がかかりすぎる。たとえば、会員制ニュースサイトなどの場合が考えられる。

こういう場合はWordPressのユーザーテーブル共有機能を使う。WordPressのユーザー情報はwp_usersとwp_usermetaに保存されているので、同じテーブルを使えば、ブログAでのユーザー情報更新がすぐさまブログBにも反映されることとなる。

これを実現するプラグインが一応存在するが(Shared Users Reloaded)、基本的にはCodexに書かれている通り、カスタムユーザーテーブルを定義すればよい。(余談だが、wp-config.phpの編集の上級オプションの項は必読。)

ユーザー権限の割当はできるが...
ユーザー権限の割当はできるが...

ユーザーテーブルを共有したときの問題点はスレーブ(奴隷)であるブログBにおいて、ユーザーが「権限なし」となってしまうことである。つまり、ログインしても管理画面に入れなくなる。Shared Users Reloadedには、スレーブでの権限を割り当てる機能があるが、一人一人のユーザーを割り当てていかないといけない(ブログAの購読者をブログBの購読者にできない)。それにそもそも、「管理者」がいないとプラグインの設定ができないので、管理者については直接ユーザーテーブルを修正するしかない。

権限グループを同期するコードを書いたらgistにでも上げておく。基本的にはスレーブとなるブログの管理画面から同期するようなのがいいと思う。

WordPress+bbPressの連携

bbPressはプラグインではなく、単体のアプリケーションで、フォーラムを作成できる。bbPress側で親となるWordPressをインストール時に指定できるため、簡単。親となるWordPressにプラグインbbPress Integrationを入れればいい。

上級トピック:WordPressユーザーのバックエンド

ユーザー情報が保存されている場所

WordPressのユーザー情報は、前述の通り、wp_usersとwp_usermetaである。wp_usersのカラムはユーザー名とメール、パスワードなど最低限のものばかり。それ以外の情報はすべてwp_usermetaに保存されている。

ちなみに前述の権限はwp_capabilitiesとして、シリアライズされた配列の形でwp_usermetaにぶち込まれている。

もしそれ以外の情報が必要となる場合や、ECサイトのように増減の激しい情報(取引履歴など)がある場合は、専用テーブルを作成し、$wpdbなどを駆使する必要がある。

ユーザーの認証方法

WordPressは認証にセッションを使っていない。Cookieを使っている。ユーザーのログイン名とパスワードハッシュを登録している。これでログイン済みかどうかを判断している。ためしにCookieを無効にしてみると、ログインできないことがわかる。

携帯電話対応プラグインのKtai-StyleはCookie非対応端末(ほとんどのガラケー)の場合はこのCookieによるログイン認証をセッションに切り替えることで携帯電話でのログインを実現している。

セキュリティ的なリスクは徐々に改善されているし、どうせセッションログインでもCookieは使うので、あまり悩まない方がいい。とにかく、ひたすらUpToDateな状態に保つべし。

WordPressを会員専用サイトとした場合、Cookieを有効にしていないユーザーへの対処が必要となるが、wp_set_cookieなどのプラッガブル(上書き可能)な関数をオーバーライドして、なんとかするのが吉。

退会=データ削除?

上述したように、ユーザーの削除自体は可能だが、ユーザーデータをまるっと削除すると面倒なことも多々ある。wp_delete_userは投稿テーブルだけは他のユーザーに割り当てることで保護してくれる(投稿はデータにpost_authorという項目がある)が、自作のテーブルなどがユーザーIDを参照している場合はそうもいかない。

ある程度の規模を持ったWebサイトなら、取引履歴等はデータとして残しておきたいだろうし、個人情報とまではいかなくとも、せめて何県の何歳の人が買ったのかぐらいは知りたいはずだ。

この場合、delete_userなどの何も出来ない権限グループを用意した上で、メールアドレス、パスワードおよびクリティカルな個人情報をすべて削除し、権限を切り替えるというのがスマートだろう。

WordPressで会員制サイトを構築する際の注意点

  1. Eコマース系の大規模なプラグインを入れた場合、会員が必ずしもWordPressのユーザーではなかったりするので、注意する
  2. カスタマイズする場合は、出来る限り細切れに実装し、プラグインAPIを出来る限り使うこと
  3. ユーザー周りの関数はテンプレートタグとは別にけっこう沢山あるので、関数リファレンスを参照すること

おしまい。ミニコme!の完成をお楽しみに!

WordPress関数リファレンスガイド

WordPress関数リファレンスガイド書籍

作者藤本 壱

発行ソシム

発売日2010 年 11 月 1 日

カテゴリー単行本

ページ数279

ISBN4883377377

Supported by amazon Product Advertising API

 

SPONSORED LINK

この記事について

この記事はが2011 年 1 月 28 日にプログラミングの記事として公開しました。

フォローしてください

ここで会ったのもなにかの縁。
高橋文樹.comの最新情報を見逃さないためにもフォローをお願いします。
めったに送らないメルマガもあります。

  • Pingback: WordPress で会員制サイト | ewq.jp | 雑多にいろいろ()

  • Pingback: ITキヲスク | 2011年1/23~1/29の週間ブックマーク()

  • yasu

    wordpressマルチサイトでユーザー権限を自動で共有できたらいいなぁと検索したところ、こちらへたどり着きました。ウェブ製作は始めたばかりでなので、わからないことが山程あると感じました。権限グループを同期するコードのアップお待ちしています^^ありがとうございました!

  • Pingback: WP高速化、管理画面カスタマイズ、jQueryなどあとで参考にするまとめ記事まとめ – Shinichi Nishikawa's blog()

  • wp

    記事を拝見してできるかなとためしているところです。
    質問ですが、
    pageが作成できる、新しい権限をふやそうとおもって、
    テーマのfunction.phpに書きソースをかきましたが、
    新しい権限で作成したユーザーで新規ページを作成することができません。
    なぜだかわかりますか?

    function test_caps(){

    global $wp_roles;

    add_role(‘professional’, ‘Professional User’, array(
    ‘read’ => true,
    ‘edit_posts’ => true,
    ‘delete_posts’ => true,
    true,
    ‘upload_files’ => true,
    ‘publish_pages’ => true,
    ‘delete_pages’ => true,
    ‘delete_others_pages’ => true,
    ‘delete_published_pages’ => true,

    ));

    current_user_can(‘publish_pages’);

    }

    add_action(‘init’,’test_caps’)

    • 上に記載されたcapabilityの配列内に

      'edit_pages' => true
      

      がないからじゃないでしょうか。試しにやってみたら、できましたよ。
      余談ですが、「ページを新規追加することができる」だけのユーザーなのであれば、Capability Managerなどのプラグインを使ったほうが楽ですよ。特殊な役割権限(自分が作ったプラグインの機能に依存しているとか)を作るときだけ自作した方がよいと思われます。

  • wp

    おへんじありがとうございます。
    ‘edit_pages’ => trueをつけたし、

    function test_caps(){

    global $wp_roles;

    add_role(‘professional’,‘Professional User’, array(
    ‘read’ => true,
    ‘edit_posts’ => true,
    ‘delete_posts’ => true,
    ‘upload_files’ => true,
    ‘publish_pages’ => true,
    ‘edit_pages’=> true,
    ‘delete_pages’ => true,
    ‘delete_others_pages’ => true,
    ‘delete_published_pages’ => true,
    ‘edit_files’ => true,
    ‘level_2′=> true,
    ‘level_1′=> true,
    ‘level_0′=> true

    ));
    としてみました。
    実行して
    DBをみますと
    s:12:”professional”;a:2:{s:4:”name”;s:17:”Professional User”;s:12:”capabilities”;a:9:{s:4:”read”;b:1;s:10:”edit_posts”;b:1;s:12:”delete_posts”;b:1;s:12:”upload_files”;b:1;s:16:”‘edit_pages’”;b:1;s:13:”publish_pages”;b:1;s:12:”delete_pages”;b:1;s:19:”delete_others_pages”;b:1;s:22:”delete_published_pages”;b:1;}}}

    となっていてedit_pages’”;b:1;s:13:となっているので追加されているとおもうのですが、管理画面には表示されないようです。

    capability manegerというものがあるのですね。ありがとうございます。

    }

    add_action(‘init’,’test_caps’)

  • Pingback: [wp] 便利そうなプラグインや機能を探してみる | ファンファンファン クリエイターズ()

  • msiako

    初めまして。byddypressをカスタマイズしています。こちらのサイトがとても参考になったのですが、上手くいかず、悩んでいます。。。やりたいことは、buddypressでユーザーがログインしたら、別の階層にあるページでも「こんにちは!***さん!」という感じで表示されて、また別の階層でもログイン機能を設けて(buddypressのDBのwp_usersテーブルを参照して)ログインすると、buddypressでもログインしたことになっているということをしたいと思っています。ですが、テストでログインしてみて自分のパソコン内のクッキーを色々いじっても、上手く認証できません。具体的に、buddypressではどのような形で認証要のクッキーを発行しているのでしょうか?何処で発行しているのでしょうか?本当に、見ず知らずの方にお尋ねして申し訳ありません。もし、よろしければ、上記の動きを実現する方法をご教授お願い出来ればと思い、コメントさせて頂きました。よろしくお願いいたします。

    • 僕はBuddyPressを使っていないのでよくわかりませんが、たしかマルチサイト機能を使ってなかったでしたっけ? 「別の階層にあるページ」とか「別の階層でもログイン機能を設けて」というのが何を指すのかちょっとわからないのでお答えし辛いのですが、ログインのさせ方がまずいのではないでしょうか。
      WordPressのログインはwp_signonという関数で行われています。
      http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wp_signon
      Cookieの設定はwp_set_auth_cookieです。
      BuddyPressの日本語サイトかWordPressのフォーラムで聞いてみるといいかもしれません。

      • misako

        返信頂き、とてもありがとうございます。
        ログインはwp_signon
        Cookieの設定はwp_set_auth_cookie
        これを元にもっと調べてみようと思います。
        また、wordpress用の関数リファレンスのサイトがあるのですね。
        とても参考になりました。
        ヒントを下さり、ありがとうございます。

        • どういたしましてー。お役に立てずごめんなさい。

  • Pingback: 月額制の会員制サイトをWordPressプラグインで実現 | インターネットツール・ノウハウ集()

  • Pingback: connect2 | wordpressのプラグイン制作時に参考になるサイトまとめ()

  • Pingback: プロフィールの「ウェブサイト」をfunctions.phpで削除 | wordpressのサイトを制作しながら function.php の小ネタをメモするBLOG()

  • こば

    はじめまして。素人です。Theme My Loginで会員サイトを作りたいと思っていたらこちらにたどりつきました。会員向けに商品も提供できたらと考えているのですがこちらではどうやっているのでしょうか?

    • Literally WordPressという自作のプラグインを使っています。最近情報サイトを作りましたので、ご覧下さい。

      http://lwper.info

  • sk

    はじめまして。WP初心者です。bbPressについていろいろと格闘していたところたどり着きました。今年の9月からコツコツと会員制のポータルサイトを構築しているのですが、bbPressを使って、会員だけが見れるフォーラム機能を実現しようとしています。寄稿者ユーザーと購読者ユーザーとの間でやりとりがされる掲示板です。管理者の権限でフォーラム作成・トピック作成・リプライ作成をする分には全く問題がないのですが、寄稿者ユーザー・購読者ユーザー側でサイトにログインし、管理者側で立てたフォーラムにアクセスしても、「ページがみつかりません」という表示が出てしまい、困っているところです。記事のなかで、bbPress integrationのプラグインについて言及していますが、私が目指すサイトの場合は必須のプラグインなのでしょうか。 (このプラグインをダウンロードしようとしたのですが、2年近くアップデートしていないので推奨できないという表示が出ています。) ご教示いただければ幸いです。尚、インストール済みのbbPressのバージョンは2.2.3です。

    • bbPressはこの記事を書いた時点では単独のソフトウェアでしたが、いまではプラグインになっています。なので、bbPress integrationは必要ないはずです。そのままで動きます。僕もLWPer.infoというサイトで使っています。

      http://lwper.info

      で、公開画面でフォーラムがNot Foundになってしまう件ですが、たぶんパーマリンクストラクチャが更新されていないからだと思います。

      管理画面から 設定 > パーマリンク と辿り、「更新」を押してください。これでパーマリンクのリライトルールが再構築されますので、Not Foundにならないと思います。.htaccessに書き込み権限がない場合は画面にそのように出ますので、適宜対応してください。

      • sk

        いろいろとありがとうございます。パーマリンクの更新では直らなかったので、bbPressのバージョンを2.2.3から、bbPress2.1.2に戻したところ解決しました。WordPress 3.4.2(今使っているバージョン)とのCompatibilityがとれているということでしたので、バージョンを戻しました。bbPress2.1.2自体は今年の8月くらいにリリースされたものですので、bbPress integrationは必要ないと理解いたしました。

        ありがとうございました。

  • sophy

    はじめまして。とても参考になります。今、会員制ポータルサイトをWP-membersをつかって構築中で、掲示板機能をつけたいのでbbPressをインストールしたところ、一点、問題点が発生しています。
    ログイン後、Forumを管理画面上でつくり、フロントエンドの画面からTopicを追加し、同じく、フロントエンドの画面からそのTopicに対してReplyをしてもその内容が表示されません。しかし、フォーラムの一覧画面に戻ると投稿数の集計は正しく集計されています。そして、その一覧画面からフォーラムを選択してもTopic/Replyの内容がなぜか見れません。。
    ところが、ログアウトして、再度、ログインすると、すべての投稿内容が正常に表示されます。
    そのような経験をお持ち、もしくは、怪しそうなところが見当がつきましたら、ご教示いただけましたら幸いです。
    (今まで行ったトラブルシューティング)
    ・bbPress以外のプラグインを無効にして、テーマをTwenty eleven(Default)にしても、解決せず。
    ・ブラウザをIEからGoogle Chromeに変更しても、解決せず。
    ・WordPress Ver.3.4.2 とbbPress2.1.2, 2.2.2, 2.2.3, 2.2.4 の組み合わせのすべてにおいて、解決せず。
    ・WordPress Ver.3.5.1とbbPress2.2.2, 2.2.4の組み合わせにおいても、解決せず。

    • キャッシュプラグインを使っているとかじゃないですか。この記事は特にbbPressに特化した記事というわけではないので、日本語フォーラムで質問していただいた方がWordPressユーザーとして正しい態度だと思いますよ。

  • Pingback: BuddypressでSNSをつくる用の参考さいと | テスト用()

  • Pingback: [WP] APIを導入してみたい(未決) | ファンファンファン クリエイターズ()

  • Pingback: 登録されている方だけに見えるようにするプラグイン | WordPress覚書 | Tetsuyan's Blog()

  • Pingback: Wordpressでオリジナルテーマを作成する時の参考URLとプラグイン | 技術部追い剥ぎペンギン()

  • Pingback: WordPressでWebサービスを作る際に参考になる記事まとめ | コレヨモ()

  • Pingback: WordPressでWebサービスを作る時に参考になる記事まとめ | コレヨモ()

  • Pingback: 参考ページのメモ | Peerful Blog()

  • Eiji Yoshioka

    すごく参考になります。いつもながら素晴らしいエントリ-ですね。

    当方、権限ごとに登録フォ-ムを分けたいと思っていまして、そういったプラグインなどの情報を探しているのですがなかなか見つかりません。
    やりたいことは、こちらのフォ-ムからご登録いただくと「投稿者」の権限で、こちらからの登録フォ-ムからご登録いただくと「編集者」の権限を持つユ-ザ-になれます、という風にしたいのです。
    そういった情報をお知りではないでしょうか。もう何か月も探しているのですがなかなか難しいのです。
    高橋様のお知恵を拝借できれば幸いです。

    • どういった導線を考えているのかは定かではないのですが、一つの登録フォームにチェックボックスみたいなのがあって、それにチェックを入れると「編集者」になる、というのはダメなんですかね。

      それか、ちょっと手間ですが、一旦全員を「投稿者」にしておいて、登録後に編集者になるフォームを用意するとか。

      ちなみに、僕は破滅派 http://hametuha.com というサイトで「登録すると最初は全員購読者、作品を公開したいと思ったら投稿者になれるフォームを見せる」という方法をとっていますが、よく考えたら最初から全員投稿者でよかったかな、と思っています。

      シンプルイズザベストですよ。ちなみに、誰でも編集者になれるサイトなんて作って大丈夫ですか? 殺し合いに発展しそうな気がするんですが……

      • Eiji Yoshioka

        コメントありがとうございます。しかもご自身の実情まで教えていただき恐縮しております。もったいないです、ありがとうございます。
        最初、こちらの意図を説明しやすくするため「投稿者」、「編集者」という言葉を出させていただきましたが、おっしゃる通り、実際にはもっと権限を制限したもの2つで運用したいと思っております。また、できれば管理画面から手動で権限を上げ下げしたり、登録フォ-ムに入力する途中で権限を選べるというものではなく、Aのフォ-ムから登録した人はこの権限、Bのフォ-ムから登録した人はこの権限、というふうにしたいと思います。もし高橋さんがそんな有料でプラグインを作ってくだされば絶対に買うのですが・・需要がなくあまり売れないでしょうか。私は売れると思うのですが。(笑)。そんな風に、高橋さんがなんというか生の声を拾う「有料プラグイン屋さん」になれば喜ぶ人はたくさんいると思います。もしご一考いただければ嬉しいです。

        • WordPressの登録フォームはTheme My Loginでカスタマイズできるのですが、「2つほしい」となるとわりかしハードにカスタマイズする必要が出てきますね。

          もちろん、そういうのを作れないこともないのですが、基本的には「1つのユーザー権限でどうにかできないか?」と工夫する方が、時間やお金すべてをコストと考えると、結果的に安上がりだと思いますよ。Facebookにせよ、twitterにせよ、ユーザーによってできることを特に変えていないですよね。それにはそれなりの理由があると思います。

          権限を複雑にしたいという要望はよくいただくのですが、工数がすごくかかるわりに汎用性を出すのが難しいなーというのがこれまでの経験から得た感想です。ご参考までに。

  • Pingback: Theme My Login WordPressで会員制サイトを運営()

  • Pingback: testpege()

  • Pingback: WordPressで会員制サイトを作るときの勘所 |()

  • Pingback: 登録されている方だけに見えるようにするプラグイン | Tetsuyan's Blog()