wp_save_post_revision()


WordPressの関数wp_save_post_revision()は、投稿のリビジョン(編集履歴)を保存するために使用されます。この関数は主に、カスタムプログラムやテーマの一部として利用され、投稿データを効率的にバックアップおよび管理できます。

構文

wp_save_post_revision( WP_Post $post );
  • $post (WP_Post) — 保存するリビジョンに関連する投稿オブジェクト。

例 1: 投稿リビジョンの手動保存

次のコードは、特定の投稿のリビジョンを手動で保存します。

<?php
$post_id = get_the_ID();
$post = get_post( $post_id );
wp_save_post_revision( $post );
?>

例 2: 新規リビジョン作成時の通知

リビジョンが保存されるたびに通知を送信するカスタムコード。

<?php
add_action( 'wp_save_post_revision', function( $revision_id ) {
    error_log( "新しいリビジョンが保存されました: " . $revision_id );
});
?>

例 3: 自動保存からカスタムデータを排除

リビジョン保存時に特定のカスタムフィールドを除外します。

<?php
add_filter( '_wp_post_revision_fields', function( $fields ) {
    unset( $fields['custom_field_name'] );
    return $fields;
});
?>

例 4: 特定の投稿タイプのみにリビジョンを適用

投稿タイプが「custom_post_type」の場合のみリビジョンを保存します。

<?php
add_filter( 'wp_save_post_revision_check_for_changes', function( $check, $last_revision, $post ) {
    if ( $post->post_type !== 'custom_post_type' ) {
        return false;
    }
    return $check;
}, 10, 3 );
?>

例 5: リビジョン保存後のカスタム処理

リビジョンが保存された直後に追加の処理を実行します。

<?php
add_action( 'wp_insert_post', function( $post_id, $post ) {
    if ( wp_is_post_revision( $post_id ) ) {
        error_log( "リビジョン保存完了: " . $post_id );
    }
}, 10, 2 );
?>

注意事項:

  • この関数を使用する場合、リビジョン管理設定を確認してください。
  • 保存されたリビジョンがデータベースを占有する可能性があるため、リビジョンの最大数を制限することをお勧めします。

関連機能: