さて、本日は12月1日、2017年も残すことあとわずかになった。この時期はテック業界を中心にアドベントカレンダーをやることが恒例となっているので、Capital Pでやってみようと思ったのだが、Adventar.org などの便利なサービスをあえて使わず、Capital Pに寄稿してもらう形で実現することにした。該当するページはこちら。
その際、今日4時間ほど使って色々な機能を実装したので、なにをやったか紹介したい。
カレンダーの実装
カレンダーを実装した。WordPress自体にカレンダー機能はあるのだが、コードを見るのが大変だったので、自分で実装している。ショートコードを使っている。
権限昇格機能
さて、Capital PではClub Capital Pという有料会員制サービスを開始したのだが、その会員はWordPressのデフォルトの権限「購読者」ではなく、「寄稿者」に昇格できるようになった。記事を公開することはできないが、普通に書くことができる。昨年、一昨年と筆者は自分一人でアドベントカレンダー24本を書いたのだが、けっこう辛かったので、Capitalistのみなさんにご協力いただこうというわけだ。
このために次の様なカスタマイズを行なった。
- ログインしたときに有料会員だったら権限を変更する。
- 一括ですべての有料会員を寄稿者にするコマンドを作成、また、週一で権限をチェックする。
- 権限が変更された場合はメールで連絡する。
- 寄稿者はデフォルトのままだと画像をアップロードできないので、できるようにする。User Role Editorなどを使用。
- 投稿が「レビュー待ち」になったらSlackで通知が飛ぶ(hameslackを利用)
タグの入力欄変更
WordPressのタグ機能は使い方次第で非常に便利なのだが、Capital Pの筆者以外のメンバーは頑なに入力してくれない。いつも筆者があとから「一括編集機能」でつけなおしている。
その理由として「どんなタグを入れたらいいかわからないから」というので、事前に入力欄がわかっているUIを作った。こうしたプラグインがあるかは知らないが、ダーっとコードを書いたらできたので、これで彼らがタグを入力してくれることを信じよう。
Sendgridによるメール送信機能
せっかく会員になってもらった方々に執筆依頼を行いたいと考え、筆者の運営する破滅派でも利用しているhamailというプラグインを導入した。このプラグインの特徴は……
- 登録しているユーザーに一括連絡できる。個別指定も可能。
- wp_mailがすべてSendgrid経由になる。
- メール一括送信の際、プレースホルダーが使える。
これのなにが便利なのだと不思議に思われる方もいるかもしれないが、会員制サイトだと結構便利なのだ。まずSMTPを必要としないこと。そして、Sendgridの高度な機能(トラッキング、開封チェック)を利用できること。そして、最後にパーソナライズされたメールを送れること。
WP Mail SMTPなどを使ってメールサーバーをAmazon SESなどに外だしすることはそれほど難しくないが、仮に宛先が1,000通あった場合、SMTPリクエストを外部に送るだけでもけっこうな負荷がかかる。かといって、いちいちMailchimpにリストをインポートするのもWordPressと二重管理になってめんどくさい。ところがSendgridなら、SMTPではなく、Web APIを利用してたくさんの人数にパーソナライズされたメールを送ることができるのだ。
まだGithubにおいてあるだけなのだが、もう少し洗練させたらなんらかの形で公開するかもしれない。予定している機能としては、添付ファイルへの対応、マーケティングリスト(メルマガリスト)同期機能などなど、そこらへんが実装できればかなり優れたプラグインになるのではないだろうか。
*
さて、以上がAdvent Calendar 2017のために実現した機能である。明日以降、ちゃんと更新されるかどうか、楽しみにしていただきたい。