SlackとWordPressの連携

PG部で使用していたWordpressのプラグイン(bbPress)による掲示板システムがちょっと使いづらいなぁと思っていたことと、みんなとのコミュニケーション手段が掲示板とZoomのチャット機能だけで、お互いのタイミングが合わずすれ違いが多いなぁと思っていたことが重なって、別のツールを導入することになりました。

SlackはTeamsやGoogleWorkspaceなどの先駆けとなったチームコミュニケーションツールです。多くのプログラマーや先端企業で利用されています。

みんなもこの機会に、ネットでのチームコミュニケーションを体験してみましょう。

以下、備忘録

WordPressの更新状況(投稿、コメント)をSlackに通知する

  1. Slackでワークスペースを作成
  2. 通知受付用のチャンネルを作成
  3. Webhookの利用申請をする。Incoming Webhook
  4. WebhookのURLをメモする
  5. WordPressにプラグイン Slack Notifications をインストールする
  6. 管理画面(SlackNotifications)のGeneralタブでWebhookのURLとチャンネルを指定する
  7. Notificationsタブで通知を送るアクションを指定する

Slack Notifications のカスタマイズ

通知のメッセージが英語なのと、表記が表形式でごちゃごちゃしていたので、シンプルな形にカスタマイズした。

下記のフォルダのファイルにメッセージ部分の記述があるので適宜修正。
/wp-content/plugins/dorzki-notifications-to-slack/core/notifications/
class-post.php
class-comment.php
class-page.php など

下記のような感じで表ではなくメッセージのみの構成に書き換えた。

public function post_updated( $post ) {

    if ( empty( $post ) || ! is_object( $post ) ) {
        return false;
    }

    if ( 'post' !== $post->post_type ) {
        return false;
    }

    $user_id = ( isset( $_POST['user_ID'] ) ) ? intval( $_POST['user_ID'] ) : $post->post_author;
    $user    = get_user_by( 'id', $user_id );

    // Build notification.
    /* translators: %1$s: Post URL, %2$s: Post Name */

    $message = __( ':pencil2: %3$s さんが *<%1$s|%2$s>* を更新しました。', 'dorzki-notifications-to-slack' );
    $message = sprintf( $message, get_permalink( $post->ID ), $post->post_title, $user->display_name );

    $attachments = [

    ];

    $channel = $this->get_notification_channel( __FUNCTION__ );

    return $this->slack_bot->send_message(
        $message,
        $attachments,
        [
            'color'   => '#2980b9',
            'channel' => $channel,
        ]
    );

}

コメントする