のえら

技術備忘とかメモとか.間違いはつっこんでいただきたい所存.

WordPress で何かアクションがあった時に slack に通知したい

概要

WordPress で何らかのアクション(「投稿」を「公開」したとき、など)に Slack 内の任意のチャンネルに通知する手順。

手順

Slack で Incoming WebHooks URL を生成する

Slack に管理者権限でログインし Incoming WebHooks URL を発行する。

この時、通知先の指定が可能だが、プラグインの設定でも通知先を指定できる。

※この URL に対して POST すると slack に通知が飛ぶので、外部に漏れないよう注意すること( URL を再発行することも可能)

WordPress に Slack プラグインをインストールする

WordPress に管理者権限でログインし、メニュー>プラグイン>新規追加 から、キーワード「slack」で検索、「Rock The Slackbot」をインストールする。

インストール完了後、メニュー>プラグイン>インストール済みプラグイン から、Rock The Slackbot を有効化すると使用できるようになる。

補足:

Rock The Slackbot は git で公開されている。

github.com

プラグインの設定をする

  1. メニュー>ツール>Rock The Slackbot をクリック
  2. 画面中央の「Let's get this party started」をクリック
  3. 通知設定画面が表示されるので、以下の項目を適宜設定、Save Webhook をクリック

設定できる項目は以下の通り。
*ハイフンの部分は確認中

設定名 設定内容
Name of Webhook この通知設定の名前
Name of Slack Account -
Webhook URL Slackで発行した通知用URL
Send To Slack Channel(s) or Direct Message(s) 通知先をwebhookで指定したチャンネル以外に指定したい場合は入力(空白の場合、デフォルトのチャンネルに通知される)
Post Message As Which Slack Username -
Icon Emoji For Message -
Use Custom URL For Message Icon -
The WordPress Icon -
Exclude Post Types From Notifications 指定した投稿タイプを通知対象から除外する
When Slack Notifications Fail 通知が失敗した時に知らせるメールの送信先
Notification Events 何をした時に通知するかを設定する(以下の項目から選択)
Content
When a post is published 投稿が公開
When a post is unpublished 投稿が非公開
When a post is drafted 下書きを作成
When a post is pending review 投稿がレビュー待ち※レビュー待ち・・・権限「寄稿者」が記事を投稿したあと、公開に承認が必要な状態
When a post is scheduled 自動投稿(予約投稿)が作成
When a post's content is updated 投稿内容が更新
When a post is deleted 投稿が削除
When a post is trashed 投稿がゴミ箱へ移動
When a 404 error is thrown 404(Not found)エラーを検知
Comments
When a comment is added コメントを追加
When a comment is unapproved コメントを非承認
When a comment is approved コメントを承認
When a comment is marked as spam コメントがスパム判定された
When a comment is trashed コメントを削除(ゴミ箱)
Menus
When a menu item is deleted メニューアイテムを削除
Media
When media is added メディアを追加
When media is edited メディアを編集
When media is deleted メディアを削除
Users
When a user is added ユーザーを追加
When a user is deleted ユーザーを削除
When a user's role has changed ユーザーの権限を変更
Updates
When a WordPress core update is available WordPress 本体のアップデートが利用可能
When WordPress core is updated WordPress 本体がアップデートされた
When a plugin update is available プラグインのアップデートが利用可能
When a plugin is updated プラグインがアップデートされた
When a theme update is available テーマのアップデートが利用可能
When a theme is updated テーマがアップデートされた
Deactivate チェックすると、設定は残したまま、このwebhookを無効にする

その他

  • Slack に通知される情報の中には旧ステータスなどの内容も含まれるので、削除したい場合はプラグインPHP を直接いじる必要がありそう。
  • 通知のフックは複数登録ができるため、上記投稿通知とは別に、例えば「コメントが追加された」「テーマのアップデートが利用可能」という管理者向けのイベントをまとめて slack の任意のユーザへと通知することも可能。