概要
wp_publish_post
アクションは、WordPressで投稿が公開されたときにトリガーされるアクションフックです。このアクションは、投稿を公開する際にさまざまなカスタム処理を実行するために役立ちます。例えば、特定の投稿が公開されたときに通知を送信したり、メタデータを追加したりするために利用されます。
よく使われる具体例としては以下が挙げられます:
1. 公開された投稿の著者に通知を送信
2. SNSに投稿を自動共有
3. 外部APIへのデータ送信
4. カスタムデータの保存
5. 投稿の閲覧数をリセット
6. SEOプラグインによるメタ情報の更新
7. 特定の条件に基づくカスタムイベントのトリガー
8. 他のプラグインとの連携処理
構文
do_action('wp_publish_post', $ID);
パラメータ
$ID
(int): 公開された投稿のID。
戻り値
このアクション自体は戻り値を持ちません。
関連する関数
使用可能なバージョン
このアクションは、WordPress 2.0以降で使用可能です。
コアファイルのパス
wp-includes/post.php
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプル1: 投稿の著者にメールを送信する
add_action('wp_publish_post', 'send_post_notification_email');
function send_post_notification_email($ID) {
$post = get_post($ID);
$author_email = get_the_author_meta('user_email', $post->post_author);
wp_mail($author_email, 'Your post is published!', 'Congratulations! Your post has been published.');
}
このコードは、投稿が公開されると、投稿の著者に対してお祝いのメールを送信します。
サンプル2: 投稿をSNSに共有する
add_action('wp_publish_post', 'share_on_social_media');
function share_on_social_media($ID) {
$post_url = get_permalink($ID);
// SNS APIを使って投稿を共有
// 例: share_to_facebook($post_url);
}
このコードでは、公開された投稿のURLを取得し、SNS APIを使用して投稿を自動的に共有することができます。
サンプル3: 公開された投稿のメタデータを追加する
add_action('wp_publish_post', 'add_custom_metadata');
function add_custom_metadata($ID) {
add_post_meta($ID, 'custom_meta_key', 'custom_meta_value');
}
このサンプルは、投稿が公開された際に特定のメタデータを追加しています。
サンプル4: 特定の条件に基づくカスタム処理
add_action('wp_publish_post', 'custom_action_for_specific_post');
function custom_action_for_specific_post($ID) {
if (get_post_type($ID) === 'custom_post_type') {
// 特定のカスタム投稿タイプの場合の処理
}
}
このコードは、特定のカスタム投稿タイプが公開されたときのみ、追加の処理を行います。
サンプル5: 外部APIへのデータ送信
add_action('wp_publish_post', 'send_data_to_external_api');
function send_data_to_external_api($ID) {
$post_data = get_post($ID);
$response = wp_remote_post('https://api.example.com/data', array(
'body' => json_encode($post_data),
'headers' => array('Content-Type' => 'application/json')
));
}
このサンプルコードは、公開された投稿のデータを外部APIに送信します。