以前、WordPress に投稿したら IFTTT と Buffer を使用して自動的に Twitter、Facebook ページ、Google+に投稿する方法で、投稿した記事をBuffer - A Smarter Way to Share on Social Mediaの仕組みを使用して、各種 SNS にシェアする方法をご紹介しました。しかし、この方法のデメリットは、IFTTTの仕組みを利用している特性上、IFTTT のトリガーが発動するまでに最大 15 分の遅延が発生する可能性がありました(WordPress の状態によっては 15 分以上の遅延が発生する可能性も)。
そのため、今回は同様に IFTTT と Buffer の仕組みは使用するものの、最大 15 分の遅延なしに即座にトリガーを発動する方法を利用し、記事投稿後にすぐに各種 SNS に拡散する方法をご紹介します。
事前に、上記記事内でご紹介している、記事投稿後にメールで通知する機能を有効化しておいてください。
WordPress に投稿した記事をすぐに SNS に拡散する方法
冒頭でご紹介した記事の最大のデメリットは、記事公開から SNS 拡散までにタイムラグが発生することでした。今回は、このタイムラグを無くすことを考えます。
IFTTT で遅延を発生させずにトリガーを発動する方法
IFTTT は、一般的に 15 分間隔でトリガーの状態を確認し、トリガーが発動したらアクションを実行するという使い方が一般的ですが、IFTTT で唯一「15 分」の壁を取っ払い、遅延を無くす方法があります。それが、「Email」チャンネルを使用することです。
Email Channelにあらかじめ登録したメールアドレスから、「trigger@Applet.ifttt.com」宛にメールを送信すると、15 分の遅延を待たずに即座にトリガーを発動することが可能なのです。Email Channelには、事前に送信元アドレスを登録する必要があります。メールアドレスを登録すると、そのメールアドレス宛に PIN コードが送信されますので、その値を入力して登録完了です。
Email Channelを使用する上での注意点は以下の通りです。
- Email Channelに登録できるメールアドレスは 1 つのみ
- 15 分間隔の遅延を発生せずに即座にトリガーが発動する
- 1 日に発動できるトリガーの回数は 750 回まで
- トリガーの回数がリセットされるタイミングは 12:00AM(GMT)
今回の用途に限った話をすれば、1 日に 750 回も記事を投稿することはないでしょうから、十分な内容です。ただし、登録できるメールアドレスは 1 つのみであることには注意が必要です。WordPress の用途以外ですでにメールアドレスを登録している場合は注意してください。Email Channel に登録したメールアドレスから IFTTT にメールを送信すると、別のレシピで Email Channel を使用している場合も即座にトリガーが発動します。
WordPress の記事を公開したら IFTTT に通知する
【カスタマイズ】WordPress で記事を投稿した瞬間に外部にメールを送信する方法でご紹介した方法を使用して、functions.php
の末尾に以下を追加してください。
add_action( 'transition_post_status', function( $new_status, $old_status, $post ) {
if ( 'publish' == $new_status && 'publish' != $old_status && 'post' == $post->post_type ) {
$header = array( 'From: from@example.com' );
wp_mail( 'trigger@Applet.ifttt.com', $post->post_title, get_permalink( $post->ID ), $header );
}
}, 10, 3 );
送信元(from@example.com
)に、事前にEmail Channelに登録したメールアドレス、送信先に、trigger@recipe.ifttt.com
を指定します。それ以外の内容は同様です。
IFTTT でレシピを作成する
では、IFTTT でレシピを作成しましょう。Create Recipe - IFTTTからレシピを作成できます。
「this」をクリックします。
「Choose Trigger Channel」に「Email」を選択します。
「Choose a Trigger」で「Send IFTTT any email」を選択します。
「Create Trigger」をクリックします。
「that」をクリックします。
「Choose Action Channel」から「Gmail」を選択します。
「Choose an Action」から「Send an email」を選択します。
「To address」に、Buffer の固有のメールアドレスを指定します。固有のメールアドレスの指定方法については、WordPress に投稿したら IFTTT と Buffer を使用して自動的に Twitter、Facebook ページ、Google+に投稿する方法を参照してください。
「Subject」は、{{Subject}}
を指定します。「Email Channel」に送付されてきたメールの件名(今回の場合は記事のタイトル)が格納されます。必要に応じて、「ブログ更新」などわかりやすい件名をつけてください。
「Body」は、{{Body}}<br>@now
を指定します。また、<br>
と@now
の間に改行を挟んでください。{{Body}}
には、「Email Channel」に送付されてきたメールの本文(今回の場合は記事のパーマリンク)が格納されます。指定方法の詳細については前述の記事で詳しくご紹介していますので、ご参照ください。
「Attachment URL」は空白にしてください。最後に「Create Recipe」をクリックし、レシピを作成します。
まとめ
WordPress のアクションフックの仕組み、および IFTTT の「Email Channel」の仕組みを使用することで、記事の公開の都度、瞬時に各種 SNS に拡散することができるようになりました。今後も、WordPress のカスタマイズについては随時公開していきたいと思います。