2020.03.28

WordPressのカスタム投稿記事公開時にLINE通知メッセ―ジを送信する方法

こんにちは、webエンジニアのゾノ( @ozonosho )です。

今日のブログではWordPressのカスタム投稿記事公開時にLINE通知メッセ―ジを送信する方法を紹介したいと思います。

WordPressの新規記事公開時にLINE通知させる機能はググると出てくるのですが、カスタム投稿タイプの記事に対応していないものばかりだったので、この記事ではそこに触れたいと思います。

WordPressのカスタム投稿記事公開時にLINE通知メッセ―ジを送信する方法

まず、Wordpressの記事公開時にLINE通知メッセージを送信するためには下記3ステップの作業が必要になります。

  1. LINE Notify のパーソナルアクセストークンを取得する
  2. LINE通知メッセージ送信用の処理を実装
  3. 記事公開時にメッセージ通知する処理を実装

順番に見ていきましょう。

①LINE Notifyのパーソナルアクセストークンを取得する

LINE Notifyは、LINEの提供するメッセージ通知サービスの1つです。

LINE版botアカウントのようなもので、そのbotアカウントに好きなメッセージを投稿させることができます。外部のwebサービスやアプリケーションと連携させることができて、プログラムを組めば投稿内容や投稿タイミングを自由に操作することもできます。

たとえば、特定の団体のLINEグループなどにLINE Notifyを追加しておけば、その団体サイトで情報が更新されたときに通知メッセージを送るなんて使い方ができるのでとっても便利です。

このLINE Notifyを利用するためには、『LINE Notifyの公式サイト』にログインしてパーソナルアクセストークンを取得する必要があります。

詳しい取得手順は、こちらの記事『LINE Notifyの使い方解説!』が分かりやすかったのでぜひご覧ください。

②LINE通知メッセージ送信用の処理を実装

パーソナルアクセストークンを取得したら、LINE Notifyを利用してLINEにメッセージを送信するための共通関数を用意します。

下記のコードをfunctions.phpに追加してください。

if(!function_exists('my_send_linenotify')) {
    function my_send_linenotify( $message, $image_thumbnail = '', $image_fullsize = '' ) {
        $url = 'https://notify-api.line.me/api/notify';
        $token = 'パーソナルアクセストークン';
        $response = wp_remote_post( $url, array(
            'method' => 'POST',
            'headers' => array(
                'Authorization' => 'Bearer '.$token,
            ),
            'body' => array(
                'message' => $message,
                'imageThumbnail' => $image_thumbnail,
                'imageFullsize' => $image_fullsize,
            ),
        ));
        if ( is_wp_error( $response ) ) {
            $error_message = $response->get_error_message();
            echo "Error: $error_message";
        }
    }
}

「パーソナルアクセストークン」と書かれた箇所には、先ほど取得したパーソナルアクセストークンの情報を入力してください。

「送信メッセージ(必須)」「アイキャッチ画像(任意)」「アイキャッチ画像サイズ(任意)」の情報を渡してあげると、LINE Notifyが自動でメッセージを送信してくれます。

③記事公開時にメッセージ通知する処理を実装

あとは、記事公開のタイミングで先ほどの関数に送信メッセージを渡してあげれば完成です。

たとえば通常の投稿(post)を公開するタイミングでメッセージを送信したい場合、functions.phpに下記のようなコードを追加してください。

function my_publish_post($ID, $post) {
    $message = "サイトに新しい記事が公開されました!\n\n";
    $message .= "タイトル:" . $post->post_title . "\n";
    $message .= "URL:" . get_permalink($ID);
    my_send_linenotify($message);
}
add_action('publish_post', 'my_publish_post', 10, 5);

アクションフック「publish_post」を利用して、記事公開時にメッセージ送信処理を実行しています。

記事公開時に処理を追加できるアクションフック「publish_post」は、「publish_{カスタム投稿タイプのスラッグ}」という命名規則でカスタム投稿タイプの場合でも実行できます。

そのため、例えば「トピック(topic)」というカスタム投稿タイプの記事公開時にLINEメッセージを送信したい場合は下記のようなコードになります。

function my_publish_post($ID, $post) {
    $message = "サイトに新しいトピックが公開されました!\n\n";
    $message .= "タイトル:" . $post->post_title . "\n";
    $message .= "URL:" . get_permalink($ID);
    my_send_linenotify($message);
}
add_action('publish_topic', 'my_publish_post', 10, 5);

さまざまなアクションフックを利用すれば、記事公開時だけでなく「ユーザー登録時」「プロフィール編集時」「問い合わせフォーム送信時」などさまざまなタイミングでメッセージを送信できるのでぜひお試しください。

おわりに

以上、今回の記事ではWordPressのカスタム投稿記事公開時にLINE通知メッセ―ジを送信する方法を紹介させていただきました。

当サイトではWordPressのカスタマイズ依頼を請け負っています。実現したい機能・要望がある方はぜひ下記ページよりご相談ください。

あなたのサイトに理想の機能を実装!WordPressカスタマイズサービス

本サービスはあなたのWordPressサイトに理想の機能を実装するサービスとなります。 どのような機能・要望でも実現可能です! Wo......

→この記事を読む