plugin_icon

WordPressのユーザーに所属情報などを付加できるプラグイン「User Categories」をリリース

リンクにリンクカテゴリーがあるように、ユーザーにもユーザーカテゴリーを作ることも可能なのでは?と思い、ユーザー用にカスタム分類(ユーザーカテゴリー)を適用させるプラグイン「User Categories」を作成してみました。

この記事は、jim912によって書かれたものです。
引用を行う場合は、著作権法に定める範囲にて、引用元であるSimple Colorsの出展元表示とhttp://www.warna.info/archives/1793/へのリンクを必ず行って下さい。

普通のプラグイン同様、プラグインメニューから User Categories を有効化すると、ユーザーメニューに新しく「ユーザーカテゴリー」というメニューが追加されます。

ユーザーカテゴリーは、カテゴリー同様にカテゴリーで親子関係を持つことが可能で、ツリー構造を持った組織構造を再現することも可能となっています。

ユーザーカテゴリーにカテゴリーを追加すると、「ユーザーの編集」「プロフィール」編集画面に登録したカテゴリーのチェックボックスが追加表示されるので、適宜チェックしユーザー情報の更新ってください。

ユーザーがどのユーザーカテゴリーに属しているかを取得するには、カスタムテンプレートタグの get_the_user_categories を利用してください。引数には、ユーザーのIDを指定します。
プラグインの有効/無効に依存したくなければ、WordPress組み込みの関数 get_the_terms を用いても取得可能です。

ユーザーIDが 1 の所属するユーザーカテゴリーを取得

<?php $user_categories = get_the_user_categories( 1 ); ?>

または

<?php $user_categories = get_the_terms( 1, 'user_category' ); ?>

ユーザーカテゴリーに属するユーザーを取得する場合は、get_users 関数で user_cat_idまたは、user_catパラメータを使って下さい。
user_cat_id はユーザーカテゴリーのID、user_cat はユーザーカテゴリーのスラッグで指定し、どちらもカンマ区切りで複数の指定が可能となっています。

ユーザーカテゴリーIDが 12 または 15、およびその子カテゴリーに属するユーザーを取得

<?php $users = get_users( 'user_cat_id=12,15' ); ?>

ユーザーカテゴリーのスラッグが wordbench およびその子カテゴリーに属するユーザーを取得

<?php $users = get_users( 'user_cat=wordbench' ); ?>

get_usersは、wp_list_authors で内部的にユーザーのデータ取得にも利用されているので、試してはいませんが、wp_list_authorsでもこのパラメータを利用することができるのではないかと思います。

Download

User Categories 0.1.1

カテゴリー: WordPressの小技   タグ: , ,   この投稿のパーマリンク

WordPressのユーザーに所属情報などを付加できるプラグイン「User Categories」をリリース への21件のコメント

  1. jim0912 より:

    ぶろぐった:WordPressのユーザーに所属情報などを追加できるプラグイン「User Categories」をリリース http://t.co/9rMS5h3e @wordpress_fan #WordPressJP #ブログ

  2. wordpress_fan より:

    ぶろぐった:WordPressのユーザーに所属情報などを追加できるプラグイン「User Categories」をリリース http://t.co/9rMS5h3e @wordpress_fan #WordPressJP #ブログ

  3. o_bridge_o より:

    WP:これはおもしろい発想!
    WordPressのユーザーに所属情報などを付加できるプラグイン「User Categories」をリリース http://t.co/4x1szBTs

  4. hr07jp より:

    [wordpress[WP_plugins]]WordPressのユーザーに所属情報などを付加-User Categories-

  5. jim0912 より:

    【お昼の再掲】WordPressのユーザーに所属情報などを追加できるプラグイン「User Categories」をリリース http://t.co/9rMS5h3e

  6. tokizaki より:

    【お昼の再掲】WordPressのユーザーに所属情報などを追加できるプラグイン「User Categories」をリリース http://t.co/9rMS5h3e

  7. digitalcube より:

    あざすw RT @jim0912: 【お昼の再掲】WordPressのユーザーに所属情報などを追加できるプラグイン「User Categories」をリリース http://t.co/akFBgd9p

  8. hissync より:

    get_the_termsが使えるとは。エロい! RT @jim0912: 【お昼の再掲】WordPressのユーザーに所属情報などを追加できるプラグイン「User Categories」をリリース http://t.co/Cx7QsrqL

  9. marushu より:

    【お昼の再掲】WordPressのユーザーに所属情報などを追加できるプラグイン「User Categories」をリリース http://t.co/9rMS5h3e

  10. makegoodtime より:

    ぶろぐった:WordPressのユーザーに所属情報などを追加できるプラグイン「User Categories」をリリース http://t.co/9rMS5h3e @wordpress_fan #WordPressJP #ブログ

  11. tubuyakikogorou より:

    【お昼の再掲】WordPressのユーザーに所属情報などを追加できるプラグイン「User Categories」をリリース http://t.co/9rMS5h3e

  12. actywav より:

    【お昼の再掲】WordPressのユーザーに所属情報などを追加できるプラグイン「User Categories」をリリース http://t.co/9rMS5h3e

  13. zerochacool より:

    ユーザーカテゴリーは、カテゴリー同様にカテゴリーで親子関係を持つことが可能で、ツリー構造を持った組織構造を再現することも可能

  14. ucc_tina_feed より:

    WordPressのユーザーに所属情報などを付加できるプラグイン「User Categories」をリリース http://t.co/Vb2PU3FB

  15. miya0001 より:

    おー、知らんかった。いいじゃん。 "WordPressのユーザーに所属情報などを付加できるプラグイン「User Categories」をリリース | Simple Colors" http://t.co/kzzG8KlR

  16. 松山 より:

    はじめまして、松山と申します。
    User Categoriesをインストールさせていただきました。
    ユーザーカテゴリを作成したのですが、
    プロフィールには、「ユーザーカテゴリー」欄が表示されるのですが、
    肝心のチェックボックスが表示されません。

    WordPressのバージョンは3.2.1です。

  17. 松山 より:

    たびたびすみません。
    自己解決いたしました。

  18. show555 より:

    こんにちは、いつも役に立つプラグインや参考になるカスタマイズをありがとうございますm(_ _)m

    今回の「User Categories」プラグインにて間違いではないかと思われる記述がありましたので報告させていただきます。(勘違いでしたら申し訳ありません)
    「get_the_user_categories」関数は以下のコードですが

    function get_the_user_categories( $user_id ) {
    return $user_categorize->get_the_user_categories( $user_id );
    }

    インスタンス名の「$user_categorize」は「$user_categories」のタイポではないかと思われます。あとテーマテンプレート上で使う場合スコープの問題でglobalで宣言が必要ではないかと思われます。なので以下のような記述になるかと思います。

    function get_the_user_categories( $user_id ) {
    global $user_categories;
    return $user_categories->get_the_user_categories( $user_id );
    }

  19. jim912 より:

    show555さん、いつもありがとうございます。

    おっしゃるとおりでございます。
    遅まきながら修正して0.1.1にアップデートさせていただきました。

  20. SUSH より:

    こんばんは。まさに必要なプラグインだったので使わせて頂きました。
    ありがとうございます。

    使わせて頂いた中で、幾つか不具合らしき箇所があったので報告させていただきます。

    ○ユーザの削除に対応していない
    ユーザを削除しても、カテゴリーの数が残ったままでした。
    こちらで修正を行った際は、
    add_action( ‘delete_user’, funcstion );
    で呼び出した関数で、
    wp_set_object_terms( $user_id, NULL, ‘user_category’ );
    で対応しています。

    ○allow_user_cat_query内
    $ids = explode( ‘,’, $params );

    $params = explode( ‘,’, $params );
    かと思います。
    また、考え方の違いなのかもしれませんが、管理画面外でも使えるように、
    add_action( ‘pre_user_query’, array( &$this, ‘allow_user_cat_query’ ) );
    はif( is_admin() )の外でも良いのでは?と感じました。

    ○add_user_category_item
    show_password_fieldsでは返り値に引数のBooleanを返さないと、パスワードの入力エリアが消えてしまう様です。
    例)
    function hoge( $bool ) {
    return $bool;
    }
    add_action( ‘show_password_fields’ , ‘hoge’ );

    また、今回必要なかったので修正しなかったのですが、ユーザ追加時には反映されないようです。
    たぶんuser_register辺りをadd_actionで出来るのかな?と思います。

  21. happycrew より:

    ユーザーをカテゴライズ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>