概要
wp_insert_post アクションは、ワードプレスで投稿情報を登録する際に利用される重要なイベントです。このアクションは、新しい投稿がデータベースに挿入される直前に呼び出され、追加の処理やカスタマイズを行うことができます。主に以下のような機能を実装する場合に使われます。
- 投稿が保存される前にカスタムメタデータを追加
- 特定の条件に基づいて投稿のステータスを変更
- 新規投稿時にカスタムフックを利用した通知の送信
- 投稿内容に基づいて関連情報を自動生成
- 投稿が公開されたときに外部APIを呼び出す
- 投稿のカテゴリやタグを自動で設定
- 特定の投稿タイプにおける処理を追加
- 投稿が作成された後に、ユーザーへのお知らせをメール送信
構文
add_action('wp_insert_post', 'custom_function', 10, 2);
パラメータ
$post_ID: 新しく挿入された投稿のID$post: 投稿のオブジェクト
戻り値
このアクションには戻り値はありませんが、実行後に他のカスタム処理をトリガーできます。
関連する関数
関連する関数は以下を参照してください。wp_insert_post
使用可能なバージョン
wp_insert_post アクションはWordPress 2.0.0以降で使用可能です。
コアファイルのパス
wp_insert_post アクションは、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_insert_post', 'add_custom_metadata', 10, 2);
function add_custom_metadata($post_ID, $post) {
if ($post->post_type == 'post') {
add_post_meta($post_ID, 'custom_meta_key', 'custom_meta_value');
}
}
このコードは、新しい投稿が挿入される際に特定のメタデータを追加します。投稿が「post」タイプである場合、カスタムメタデータが追加されます。
サンプル 2: 投稿ステータスを変更する
add_action('wp_insert_post', 'change_post_status', 10, 2);
function change_post_status($post_ID, $post) {
if ($post->post_status == 'draft') {
$post->post_status = 'pending';
wp_update_post($post);
}
}
このコードは、新しい投稿がドラフトとして保存される場合に、そのステータスを「保留」に変更します。
サンプル 3: 投稿公開時に通知を送信する
add_action('wp_insert_post', 'send_notification_on_publish', 10, 2);
function send_notification_on_publish($post_ID, $post) {
if ($post->post_status == 'publish') {
wp_mail('admin@example.com', 'New Post Published', 'A new post has been published.');
}
}
このコードは、投稿が公開された際に、指定されたメールアドレスに通知を送信します。
サンプル 4: 投稿作成後にカスタム処理を実行する
add_action('wp_insert_post', 'execute_custom_process', 10, 2);
function execute_custom_process($post_ID, $post) {
if ($post->post_type == 'page') {
// カスタム処理を実行
}
}
このコードは、新しいページが作成された後に特定のカスタム処理を実行します。
サンプル 5: 関連情報を自動生成する
add_action('wp_insert_post', 'generate_related_info', 10, 2);
function generate_related_info($post_ID, $post) {
if ($post->post_type == 'post') {
// 関連情報を自動生成して投稿に追加
}
}
このコードは、投稿タイプが「post」の場合に、関連情報を自動的に生成し、投稿に追加します。