ようこそのお運びで、厚く御礼申し上げます。
43日目です。今回は更新時を取得して、メール送信をしてみます。
投稿時に、複数のアドレスにお知らせメールを送信する。
記事を投稿したら、指定した複数のメールアドレスにお知らせメールを送信します。
- 記事を更新するときをフックする
- メールアドレスや本文を指定する
- メールを送信する
まずは、function.phpに書いてみます。
では、function.phpに以下のコードを書きました。
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 | add_action('publish_post', 'paka3PostMail', 10, 2);function paka3PostMail($post_ID, $post){ $mail_address =array('****@****.com', '*****@**.jp'); $subject = "ブログ更新のお知らせ"; $content = $post->post_title; $link = get_permalink($post_ID); $message =<<<EOSブログが更新されました。※今回のタイトル「{$content}」{$link}EOS;wp_mail( $mail_address, $subject, $message );} |
ポイントはどこ?
今回のポイントはまず一つは更新時の取得です。
- 「publish_post」をアクションフックしていますが、正確には{$new_status}_{$post->post_type}をフックすることになります。
(こちらのページを参照してください。)001add_action('publish_post','paka3PostMail', 10, 2); - 状態「$new_status」については、WordPress Codexの日本語版にまとめてくれていますので、こちらを参照してください。
※今回は「投稿やページが公開済み」の状態を取得するので「publish」となります。 - {$post->post_type}には、「post」の他に「page」や「カスタム投稿タイプ名」が設定できそうです。
次にメールの送信、こちらは「wp_mail」を使います。
- WordPressにはメール関数が用意されています。
送信先メールアドレスは配列で複数登録することもできます。001wp_mail($mail_address,$subject,$message); - その他header(ccやFrom等)の設定も変えれます。
(WordPress Codex:wp_mail参照)
コードをプラグイン用のファイルにします
それではfunction.phpに書いたコードを消して、
「paka3_postMail.php」というファイルを作成し、以下のコードを記入します。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| /* | |
| Plugin Name: paka3PostMail | |
| Plugin URI: http://www.paka3.com/wpplugin | |
| Description: 投稿時に、複数のアドレスにお知らせメールを送信する。 | |
| Author: Shoji ENDO | |
| Version: 0.1 | |
| Author URI:http://www.paka3.com/ | |
| */ | |
| add_action('publish_post', 'paka3PostMail', 10, 2); | |
| function paka3PostMail($post_ID, $post){ | |
| $mail_address =array('****@***.com', | |
| '******@***.jp'); | |
| $subject = "パカラボブログ更新のお知らせ"; | |
| $content = $post->post_title; | |
| $link = get_permalink($post_ID); | |
| $message =<<<EOS | |
| アルパカラボです。 | |
| ブログが更新されました。 | |
| ※今回のタイトル | |
| 「{$content}」 | |
| {$link} | |
| EOS; | |
| wp_mail( $mail_address, $subject, $message ); | |
| } | |
| ?> |
このファイルを[wp-content]>「plugins」ディレクトリに入れ、管理画面で有効にして完了です。
今回のまとめ
今回、アクションフックした「publish_post」これのフィルター名を探していたんですが、見つからなかったので「うーん」となったのですが、実際は{$new_status}_{$post->post_type}となっていて、さらに「transition_post_status」というものをフックすると細かくわけれそうなのがわかりました。
バージョンがあがる毎に、新しい関数がやっぱり増えたり、進化していったり・・・。ググると古い情報もあるので、なかなか追いつくのが大変だなー。次回はもうちょっと、公開時の場合分けしてみようと思います。