
「望んだものがないなら作ればいいじゃない」はじめてWordPressプラグインを作ったよ!
( ˘ω˘ )スヤスヤ・・・最近暖かくなってきましたね。陽気につられて毎日眠たい@ampersand_xyzもといWP-Eイクラです。
WordPressをコネコネするお仕事
最近はずーっとWordpressをカスタマイズしております。
自分的にその仕事で何を大事なところとして考えているかといえば、
開発の側面では、自身はその開発が終わった後、別の案件をやり始めたり、所属場所が変わったりすることが想定されるため、開発が終わった後もずっとカスタマイズや開発したものの面倒を見られるわけではありません。
そのため開発する成果物、コードはファイル・関数名とその責務にしっかりルールをつけて、名前から何がどこにあるのかをわかるようにしておくこと等はもちろん大事なのですが、後から追加の要件などが発生した場合にスムーズにつなぎ合わせられるようにモジュール化しているかどうかとかを気にしています。
そして、運用の側面として重要な事が 実際に運用する人に分かりやすいか・使いやすい作りになっているか であると考えて作っています。
「使いやすい」ってなんだろう?
まず前提として「見た目としての使いやすさ」についてです。
運用をする人、というのは多くの場合開発者ではないと思いますし、また、運用を担当する人も次々入れ替わっていくものだったりします。
では、そういう方々につかって貰うにあたって気をつけなくてはいけない点としては、見た目・挙動がトリッキーであればあるほど、引き継ぎのコストがかかるし、使いづらいものとなってしまうので、自分としては「ぱっと見でだいたいの人が使い方を察知できる見た目になってるか」かどうかが「使いやすさ」なのかなぁと思います。
更に短く言えば「直感的」かどうかというか。
機能の都合なのでどうしたって複雑にならざるを得ない場合などは、近くにツールチップや説明書き、ないしヘルプへの導線を配置したり、ボタンやプレースホルダーに分かりやすいラベルをいれたりしています。
さらっと言っちゃいましたがすっごい難しいです。
意識はしていますが、きちっとやれているのかなというのはまだ自問自答なお年頃です。
そんななかで、困ったこと
さて、そんな前書きをさせて頂いて何が言いたいことだったかというと、
Wordpressにて、権限制御関連のことで「どうしようかなー」という部分が出てきたのです。
今携わっている業務で「カスタム投稿Aにだけ投稿出来るカスタム権限」「カスタム投稿Bだけに投稿できるカスタム権限」が必要になる、また、後から増えることもありえそうということがわかってきました。
じゃあ権限制御できるプラグインを入れようかな
と思って入れてみたものの、権限のレベルが低いユーザーでの投稿時におかしい挙動が起こるようになったり、そもそも操作がちょっとわかりづらかったり、カスタム投稿への制御ができないとか、記事1つずつとかユーザー1人ずつに権限制御をかけられるけども、そんなに細かく制御したいと思ってないなあとか・・・なかなかいい塩梅のプラグインがなかなか見つからなかったのでした。
(ついでに、探し方が甘かっただけで、良いプラグインは後で見つかりました。後述。)
カユイところに手を伸ばす
そんなこんなで、自分のほしいものは自分で作ることにしました。
実装要件
- カスタム投稿・カスタム権限の追加に対応できる
- wp_optionを使わない。権限系データをUPDATEしたりしない。プラグイン用テーブルを作る(プラグインを使った影響がどこに及ぼされたかわからなくなるのがイヤだったので。単純に好みの問題という感じです。)
- 行いたいのは「管理画面での操作制御」だけ。フロント側で制限等は及ぼさないようにする
- 「非許可にする」ということだけ操作する
- 使いやすく
( ˘ω˘ )<よーしつくるぞー。
~~しばらくお待ちください~~
( ˘ω˘ )<できたよー。
はじめてのプラグイン
横軸は権限、縦軸はカスタム投稿やその他のメニューについて、サイドバーへの表示と、権限制御です。あんまり細かいところまでは制御せず。
とはいえ、カテゴリに対してのマネージメント権限制御機能とかが入ってないのとか、割りと穴っぽこ空いてて設定できる粒度のツメが甘い感じですが、やりたいことをやりたい感じにはできました。
Githubにおいといたよ
よろしくね>( っ˘ω˘ )っ[https://github.com/m-seino/adminmenu-disable-controler]
ふぅ・・・って一息ついたところで良いプラグインが既にあったことに気づく
Adminimizeってプラグインがやりたいことをもっと細かくきっちり出来るよってことに実装終わってから気づきました。なんてこったい!/(^o^)\でもまぁいいか!
まとめ
「ないなら作ればいいじゃない。」の心意気は大事にしていきたいなあと思います。
たとえちょっと既存のものとダブってもね。でも工数が無駄になるのはよくないから、ちゃんと目的にあっていて、使えそうなものは使おうと思います。
( ˘ω˘)<現場からは以上です