ワードプレスのwp_after_insert_postアクションの使用方法・解説

概要

wp_after_insert_postアクションは、投稿情報を保存した後にアクションを実行するためのフックです。このアクションは、投稿がデータベースに挿入された後にさまざまなカスタム処理を行いたい場合に利用されます。具体的には、以下のような機能を実装する際によく使われます。

  1. 投稿が作成された後にカスタムメタデータを追加する。
  2. 他のサービスに対して投稿情報を送信する。
  3. 投稿作成時に通知メールを送信する。
  4. ソーシャルメディアに自動的にシェアする。
  5. カスタムログを作成する。
  6. SEO関連のメタ情報を設定する。
  7. 投稿作成後のバリデーションチェックを行う。
  8. 他のプラグインとの連携処理を実行する。

構文

add_action('wp_after_insert_post', 'custom_function_after_insert_post', 10, 3);

パラメータ

  • $post_ID: 挿入された投稿のID。
  • $post: 挿入された投稿のオブジェクト。
  • $update: 投稿が更新された場合はtrue、新規作成された場合はfalse

戻り値

このアクションは値を返さず、フック内で実行される関数の結果はありません。

関連する関数

https://refwp.com/?titleonly=1&s=wp_after_insert_post

使用可能なバージョン

wp_after_insert_postアクションは、WordPress 5.5.0 以降で利用可能です。

コアファイルのパス

wp-includes/post.php

サンプルコード

サンプル1: メタデータの追加

このサンプルコードでは、投稿が作成された後にカスタムメタデータを追加しています。

add_action('wp_after_insert_post', 'add_custom_meta_after_insert', 10, 3);

function add_custom_meta_after_insert($post_ID, $post, $update) {
    if (!$update) { // 新規投稿の場合
        add_post_meta($post_ID, 'custom_meta_key', 'Custom Value');
    }
}

サンプル2: 通知メールの送信

投稿が作成された際に、管理者にメールを送信するコード例です。

add_action('wp_after_insert_post', 'send_notification_email_after_insert', 10, 3);

function send_notification_email_after_insert($post_ID, $post, $update) {
    if (!$update) {
        $admin_email = get_option('admin_email');
        wp_mail($admin_email, '新しい投稿が作成されました', '投稿ID: ' . $post_ID);
    }
}

サンプル3: ソーシャルメディアへのシェア

投稿作成時にソーシャルメディアにシェアする例です。

add_action('wp_after_insert_post', 'share_on_social_media', 10, 3);

function share_on_social_media($post_ID, $post, $update) {
    if (!$update) {
        // ここにAPIを呼び出してソーシャルメディアにシェアする処理を書く
    }
}

サンプル4: カスタムログの作成

投稿が作成されたときにログファイルに書き込むサンプルです。

add_action('wp_after_insert_post', 'log_post_creation', 10, 3);

function log_post_creation($post_ID, $post, $update) {
    if (!$update) {
        error_log('新しい投稿が作成されました: ID ' . $post_ID);
    }
}

サンプル5: SEO関連メタ情報の設定

投稿が作成された直後にSEOメタデータを設定するコード例です。

add_action('wp_after_insert_post', 'set_seo_meta_after_insert', 10, 3);

function set_seo_meta_after_insert($post_ID, $post, $update) {
    if (!$update) {
        // SEOメタデータを設定する処理をここに書く
        update_post_meta($post_ID, '_seo_description', 'これは新しい投稿のSEO説明です。');
    }
}

この関数のアクションでの使用可能性

アクション 使用可能
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

非推奨・削除されたバージョン

現在のところ、wp_after_insert_postアクションが特定のバージョンで非推奨または削除された情報はありません。

この関数について質問する


上の計算式の答えを入力してください