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

概要

wp_save_post_revisionアクションは、現状の投稿のリビジョンを作成する際に使用されます。このアクションは、投稿やページが保存されるたびに自動的に呼び出され、リビジョンが保存される直前の状態を取得できます。このアクションは、特にカスタム機能を追加したり、リビジョンの処理をカスタマイズしたりするためによく使用されます。以下に、よくある使用例を挙げます。

  1. 投稿のリビジョンにメタデータを追加する
  2. 保存時に特定の条件に基づいてリビジョンを除外する
  3. ログや通知を作成し、リビジョンの作成を追跡する
  4. 特定の投稿タイプのリビジョン作成を管理する
  5. 自動リビジョン保存のタイミングを調整する
  6. リビジョンが作成されたときに関連するカスタム処理を実行する
  7. リビジョンに基づいて特定のキャッシュをクリアする
  8. リビジョンを外部サービスと同期する

構文

do_action('wp_save_post_revision', $post);

パラメータ

  • $post (WP_Post): 保存される投稿オブジェクト。

戻り値

このアクションには戻り値はありません。

関連する関数

wp_save_post_revisionの関連関数

使用可能なバージョン

wp_save_post_revisionアクションは、WordPress 2.6以降で使用可能です。

コアファイルのパス

このアクションは、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

サンプルコード

以下に、wp_save_post_revisionアクションを使ったサンプルコードを5点記載します。それぞれのサンプルコードは、何をしているのかの説明と共に示します。

サンプルコード 1

add_action('wp_save_post_revision', 'add_meta_to_revision');

function add_meta_to_revision($post) {
    if ($post->post_type === 'post') {
        // 投稿のリビジョンにメタデータを追加
        add_metadata('post', $post->ID, 'custom_meta_key', 'custom_meta_value');
    }
}

説明: 投稿のリビジョンが保存される際に、特定のメタデータを追加するサンプルコードです。custom_meta_keyというキーでメタデータを保存します。

サンプルコード 2

add_action('wp_save_post_revision', 'notify_on_revision');

function notify_on_revision($post) {
    // リビジョンが作成されたときに通知を送信する
    wp_mail('admin@example.com', '新しいリビジョンが保存されました', '投稿のリビジョンが保存されました。');
}

説明: リビジョンが作成されるたびに管理者に通知メールを送信するサンプルコードです。

サンプルコード 3

add_action('wp_save_post_revision', 'sync_revision_with_external_service');

function sync_revision_with_external_service($post) {
    // 外部サービスにリビジョン情報を同期する
    $data = [
        'title' => $post->post_title,
        'content' => $post->post_content,
    ];
    wp_remote_post('https://example.com/sync', ['body' => json_encode($data)]);
}

説明: リビジョンが保存された際に、外部サービスにリビジョン情報を同期するサンプルコードです。

サンプルコード 4

add_action('wp_save_post_revision', 'remove_revisions_conditionally');

function remove_revisions_conditionally($post) {
    // 条件に基づいてリビジョンを除外する
    if ($post->post_status === 'draft') {
        remove_action('wp_save_post_revision', 'remove_revisions_conditionally', 10);
    }
}

説明: 特定の条件(この場合は投稿がドラフトの場合)に基づいてリビジョンの作成を無効化するサンプルコードです。

サンプルコード 5

add_action('wp_save_post_revision', 'log_revision_creation');

function log_revision_creation($post) {
    // ログにリビジョン作成の情報を記録する
    error_log('投稿のリビジョンが作成されました: ' . $post->ID);
}

説明: リビジョンが作成された際に、その情報をエラーログに記録するサンプルコードです。

これらのサンプルコードを活用することで、wp_save_post_revisionアクションの使用法を理解し、カスタム機能の実装に役立てることができます。

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


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