カテゴリを制限するプラグイン(自作)
ユーザー毎に投稿できるカテゴリを制限するプラグインです。
ユーザーが誤って別のカテゴリに投稿しないように制限させます。
慣れていないユーザーが間違って別のカテゴリに登録したりする事が無いように初めからカテゴリを限定していれば楽ではないか、と。
具体的なイメージとしては、スタッフブログ。
従業員Aは従業員Aのカテゴリにしか投稿できないようにします。
機能
- ユーザー毎に許可するカテゴリを選択できます(複数選択可)。
- 記事作成、編集中は指定されたカテゴリのみでの投稿になります。
- 「クイック投稿」「クイック編集」を非表示する機能があります。
スクリーンショット
| 設定画面 | 記事編集画面 |
|
|
インストール
- zipファイルをダウンロードします
- zipファイルを展開後、フォルダごとプラグインフォルダに入れます。
- プラグインの管理画面から「Category Limitation」を有効化します。
使用方法
- 「設定」メニューから「Category Limitation」を選択します。
- ユーザー毎に許可するカテゴリにチェックを入れます。
- チェックを全て外すと全てのカテゴリを表示させます。←これが初期設定です
- 「変更を保存」をクリックして設定を保存します。
- 以降、記事作成、編集中は許可されたカテゴリのみ表示されます。
その他注意事項
何かしらのトラブルが発生しても当社が責任を負うことは一切ありませんので、使用する場合は自己責任でお願いします。
また、記事編集画面において、カテゴリを制限して表示する際に正規表現を用いて変換を行なっているのですが、なにぶん苦手なため非常に怪しい正規表現になっています…。とりあえず当環境では問題なく動いているので大丈夫かな?とは思いますが保障は出来ません。もっとスマートな方法があれば誰か教えてください…。
追記:
WordPress 2.7以降だと「クイック投稿」という項目があるのでそこで投稿されるとプラグインの効果がありません(デフォルトのカテゴリに登録されるみたいです)。現時点では対応する時間がありませんので、バージョン2.6まででご使用ください。
2009-08-24 追記:
一応対応してみました。
対応と言いましてもスタイルシートで見えなくするだけですが(汗)…。
保存の時にハックしてどうのこうのと出来れば一番良いのですが、残念ながら私にそれだけの能力が無いので、「クイック投稿」をスタイルシートで消す方法を採っています。
「Categoly Limitaion」の設定画面を開いたら、
『クイック投稿』を強制的に隠しますか?という項目があります。
「はい」を選択して保存した場合は「非表示にする要素:」に入力されているオブジェクトのCSSが「display: none;」となります。デフォルトで入力されているオブジェクトは「クイック投稿」「クイック編集」の要素です。
他に隠しておきたい要素があればカンマ区切りで追加すれば良いかと思います。追加する場合はjQueryでのオブジェクト指定方法に従ってください。
まぁ見えなければ使われる事も無いという逃げ道ですが、誤動作は確実に減ると思います。
2009-09-09 追記:
記事のコメント記入でエラーが発生した場合に、画面が表示されない(白紙になる)不具合を見つけました!
変更したものをアップロードしたので、もし使用されている方がいましたら早急に差し替えてください。
ご迷惑をお掛けします…。
コメント
トラックバック
-
[...] ということができる。 ただし、これでは、企業ポータル等で需要のある、「社内ユーザー権限により投稿できるカ テゴリーを制限」したい場面では使えない。 WordPress2.7では使用できないプラグイン「LimitCategories」の代わりになりそうなプラグインとしては ISプランニングさん制作の「Category Limitation」を試してみることにする。 [...]
投稿日時: 2009-05-06 03:37:38 投稿者: be advanced - [WordPress]カテゴリー別にユーザーレベルを設定できるプラグイン -
[...] zipファイルをISOプランニングさんのサイトからダウンロードします [...]
投稿日時: 2009-08-18 15:14:42 投稿者: ISOプランニングさんのカテゴリを制限するプラグイン - djobidjoba
トラックバック用URL:
記事のリンク先URL:http://www.is-p.cc/wordpress/plug-in/category-limit/364













mi_325 さんより:
2009-08-21 13:07:42
初めまして、こんにちは。
こちらのサイトでは、wordpressでサイトを構築する際ためになる情報をたくさん公開してくださっているので、いつも勉強させていただいています。
ところで、今回こちらの『Category Limitation』を使わせて頂こうと思っているのですが、
プラグインを有効化し、設定のリストに「Category Limitation」の文字は表示されているのですが、そこをクリックしても設定画面が表示されません。
どういった不具合が考えられるでしょうか…。ちなみに、現在併用しているプラグインを全て外し、Category Limitationを単独で使用した場合も、設定画面が表示されませんでした。
当方ではWordpress 2.7.1を使用しています。
バージョン2.7以降の場合、クイック投稿ではカテゴリーが無効になる旨は書かれていますが、通常の投稿の場合でも2.7以上では使えないのでしょうか?
お手数をおかけしますが、ご回答いただけると嬉しいです。
ISプランニング さんより:
2009-08-21 13:37:33
>mi_325さん
拙作をお使いいただきありがとうございます!
現在、私共のWordPressのバージョンは最新の2.8.4ですが、問題なく使えています。
考えられる要因としては権限が無いのではないかと思いますがどうでしょうか?
例えばadminの管理者で行なった場合はどうでしょうか?
(もしエラーが発生していない場合)唯一引っ掛かりそうだと思うのはそこの部分なのですが…。
(user_levelが上位でないとそのまま処理を終了しています)
また、逆にユーザーに「admin」しかいない場合も何もしません。というのもユーザーの取得で「admin」を省いているからです。
admin以外にユーザーはいるでしょうか?
それでもダメな場合は…(^-^; どうしましょう?
mi_325 さんより:
2009-08-21 15:13:21
早速のご回答ありがとうございます!
>>user_levelが上位でないとそのまま処理を終了しています
とのことで、試しに、現状、管理者権限のadminの他、作成者権限のユーザーが9名設定されていたものを、
すべて管理者権限に変更して設定画面を見てみたところ、『Category Limitation』の設定画面が表示されました!
また、無事に設定画面が表示されるようになってから再度ユーザー権限の変更を行いましたが(作成者に戻しました)、普通に設定画面が表示されています。
これで無事に、貴プラグインを導入できそうです。
素晴らしいプラグインとご助言、ありがとうございました!
ISプランニング さんより:
2009-08-21 15:24:51
>mi_325さん
無事解決できたみたいで良かったです。
ただ少し気になったのですが、わざわざ全員を管理者権限にする必要はなく、(例えば)adminでログインして各ユーザーの変更をすれば大丈夫のはずです。(要するに変更を行なうユーザーが管理者権限であれば設定対象のユーザーがどの権限であろうと関係ないという事です。←少し分かり難いですね)
今度、機会があれば試してみてください。
これからも宜しくお願いします。
mi_325 さんより:
2009-08-21 16:01:08
重ねてのご返答ありがとうございます。
>>adminでログインして各ユーザーの変更をすれば大丈夫のはず
とのことなのですが、プラグインの追加、設定や変更は常時adminでログインした状態、管理者権限で行っていました。が、設定画面は表示されませんでした…。
当方のwordpressに何か他に問題があるのかもしれません…が、今回はひとまず上記方法で解決したので良かったです。
本当にありがとうございました!
ISプランニング さんより:
2009-08-21 16:14:41
>mi_325さん
そうでしたか…また新たな謎ですね。
もしかしたら当方で出力する際、変にこねくり回しているのかもしれませんし、なにぶん結構前の事ですので記憶が…。
今度、クイック投稿の箇所をCSSで強制的に消すように変更しようかと思っていますので、その時に見直してみます。
では。
komaru さんより:
2009-08-26 12:36:41
はじめまして、こんにちは。
いつも、勉強がてらちょくちょく来させてもらってます。
ところで、Category Limitationなんですが、思うように動いてはいるんですが、設定画面で
Warning: implode() [function.implode]: Bad arguments. in /xxxx/wp/wp-content/plugins/category-limitation/wp-category-limitation.php on line 381
という、Warningが出てしまいます。動作に支障はないようなんですが、消すための何か方法はあるでしょうか?当方、WP2.7.1を使っています。
よろしくお願いします。
ISプランニング さんより:
2009-08-26 13:20:57
>komaruさん
わざわざご報告ありがとうございます!
恐らく「implode()」というPHP関数を利用する際に引数が正しくないので出てくるエラーだと思います。
先程、修正してみたのをアップロードしてみました。恐らくこれでエラーは無くなると思います。
お手数ですが、再度ダウンロードして使用してみていただけますか?
もし他にエラーや不具合が発生した場合はお知らせ下さい。
komaru さんより:
2009-08-26 17:48:36
うわー、ありがとうございます。
こんなに早く対応していただけるとは思いませんでした。早速試したところエラーは出ませんでした。
本当にありがとうございました。
ISプランニング さんより:
2009-08-27 09:56:58
>komaruさん
こちらこそご報告いただき、ありがとうございます。
今後とも宜しくお願いします。
Jela さんより:
2009-09-13 08:49:45
よく訪問させて頂いています☆
素敵なプラグインをありがとうございます!
快適に利用させて頂いてます!!
お尋ねなのですが先日
最新版の2.8.4にVerアップしたところ
プラグインを有効にすると以下のような
エラーが出てしまい使う事ができません…
Parse error: parse error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /xx/wp-content/plugins/category-limitation/wp-category-limitation.php on line 37
お忙しい中大変恐縮ですが
お手隙の時にでもご指導頂ければと思います。
よろしくお願い致します!
ISプランニング さんより:
2009-09-14 08:39:24
>Jelaさん
わざわざご報告ありがとうございます。
困りました、そのエラーは初めてです…。
ちなみにそのエラーですが、WordPressのバージョンが2.8.4以前だと出なかったのでしょうか?
あとご使用されている環境のPHPのバージョンは5以上でしょうか?
Jela さんより:
2009-09-15 10:10:46
PHPをバージョンを5にアップしたところ解決しました!!
久しぶりだったので初歩的な事で
お手間を取らせてしまってすみません;;;;
ありがとうございました☆
ISプランニング さんより:
2009-09-15 10:41:13
>Jelaさん
そうですか。
無事動いたみたいで良かったです!
今後とも宜しくお願い致します。
bipoo さんより:
2009-11-13 16:00:26
ユーザーにわかりやすくしてあげたいなとおもいながら、このサイトにたどり着きました。
ダウンロードしてみたんですが、以下の errorが、、、
お手すきでよいので、
みて頂けたらありがたいです。
Parse error: syntax error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /xx/wp-content/plugins/category-limitation/wp-category-limitation.php on line 37
PHPのバージョンは5以上です。
よろしく御願い致します。
ISプランニング さんより:
2009-11-16 17:00:29
>bipooさん
返事が遅れてしまい申し訳ありません。
申し訳ついでに、先程コメントを確認したばかりですので、まだ検証をしておりません…。すいません。
これからチェックしてみますので、今しばらくお待ちください。
ISプランニング さんより:
2009-11-16 17:12:57
>bipooさん
(^-^; よく見ると上の方のコメントと同じエラーみたいですね。
PHPのバージョンは5以上で合っているのでしょうか?お手数ですが、もう一度確認してみていただけませんか?
一応、色々検索してみましたが、やはり「定数(const)がPHP5以上でないと使えない」というエラーだろう、ぐらいのものしか見つからなかったもので…。
ポンポコ さんより:
2010-01-15 12:22:55
とても良いプラグインを公開して下さって感謝します。
思わずコメントを入れてしまいました。
これを投稿に限らずにカテゴリーの追加にも適用出来たらいいですね。
ユーザー毎に追加できるカテゴリーを制限する。
つまり制限した親カテゴリー配下にしか子供を作れない
これは実現は難しいかな?
お暇な時にご検討下さい。
ISプランニング さんより:
2010-01-15 16:41:10
>ポンポコさん
嬉しいお言葉、ありがとうございます!
なるほど…。
自分のカテゴリ内の下にしかカテゴリを作成できないようにする、という事ですか。意図したい事は分かります。
そういうアイデアは大歓迎です!
空き時間を見ながら可能かどうか検討しながらやってみようと思いますので、のんびりとお待ちいただけたら幸いです。
mi_325 さんより:
2010-01-26 12:03:22
こんにちは。
以前、こちらのコメント欄でwordpress2.7.1での使用で不具合に付いて質問させて頂いた者です。その節は早々と御対応いただき、ありがとうございました!
その後も、少し古いwp2.6.5などでも便利に使用させてもらっています。
ところで、Category Limitationを使用している場合、カテゴリーの制限がかかっているユーザーでログインをすると、記事を作成するとき、初めから一番上のカテゴリーにチェックが入った状態になっていますが、これを外しておくことはできますか?
現在複数のユーザーに、それぞれ2~3ずつのカテゴリーを割り振って投稿しているのですが、あらかじめ入ってしまっている一番上のチェックを外し忘れることが多く…。
1ユーザー1カテゴリーに制限しているなら、あらかじめチェックが入っている方が便利だなぁと思ったりもしていますので、もし可能でしたら、スクリプトの修正部分等教えて頂けると大変ありがたいです。
お忙しい中お手数をおかけしますが、ご回答いただけると嬉しいです。
ISプランニング さんより:
2010-01-26 13:26:27
>mi_325さん
今も使っていただけているという事で嬉しい限りです。
さて、ご質問の件ですが、予めチェックを外す方法は簡単です。
プラグインディレクトリの中にある「wp-category-limitation.php」を開いていただき、101行目の以下の箇所、
if(ereg("post-new.php", $_SERVER["PHP_SELF"]) || (count($limitid) == 1)) {
の「 || 」を「 && 」に変更すれば、限定するカテゴリが一つの時のみにチェックが入るようになります。(複数のカテゴリの場合はチェックが入りません。)
ただし一点ほど気を付けていただきたいのは、更新時(公開時)にカテゴリのチェックを忘れている場合はWordPressで設定されてあるデフォルトカテゴリに投稿されてしまいます。
「更新(公開)時にデータをハックして云々」というレベルまで私の技術が無いので、お許し下さい。(WordPressのコアファイルを直接イジればそれも可能ですが、それは絶対にしたくないですから)
mi_325 さんより:
2010-01-26 15:05:47
早々にご返答いただき、ありがとうございます。
教えて頂いた箇所を直してアップしたところ、期待通りの動作をしました!
カテゴリーが1つの時はチェック有り、複数の時はチェック無し…素晴らしいです。
本当にありがとうございました!