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

概要

wp_publish_postアクションは、WordPressで投稿が公開されたときにトリガーされるアクションフックです。このアクションは、投稿を公開する際にさまざまなカスタム処理を実行するために役立ちます。例えば、特定の投稿が公開されたときに通知を送信したり、メタデータを追加したりするために利用されます。

よく使われる具体例としては以下が挙げられます:
1. 公開された投稿の著者に通知を送信
2. SNSに投稿を自動共有
3. 外部APIへのデータ送信
4. カスタムデータの保存
5. 投稿の閲覧数をリセット
6. SEOプラグインによるメタ情報の更新
7. 特定の条件に基づくカスタムイベントのトリガー
8. 他のプラグインとの連携処理

構文

do_action('wp_publish_post', $ID);

パラメータ

  • $ID (int): 公開された投稿のID。

戻り値

このアクション自体は戻り値を持ちません。

関連する関数

wp_publish_post

使用可能なバージョン

このアクションは、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に送信します。

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


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