钩子文档

rest_delete_revision

💡 云策文档标注

概述

rest_delete_revision 是一个 WordPress Hook,在通过 REST API 删除修订版本后触发。它提供删除操作的结果和请求信息,供开发者进行后续处理。

关键要点

  • 触发时机:在通过 REST API 成功删除或移动修订版本到回收站后立即触发。
  • 参数:$result 表示删除结果(成功时为 WP_Post 对象,失败时为 false 或 null),$request 为 WP_REST_Request 对象包含 API 请求详情。
  • 用途:常用于日志记录、清理相关数据或执行自定义操作。
  • 相关函数:由 WP_REST_Revisions_Controller::delete_item() 调用,用于删除单个修订版本。
  • 版本历史:自 WordPress 4.7.0 版本引入。

代码示例

add_action( 'rest_delete_revision', 'my_custom_revision_delete_handler', 10, 2 );
function my_custom_revision_delete_handler( $result, $request ) {
    if ( $result instanceof WP_Post ) {
        // 修订版本已删除或移至回收站
        error_log( 'Revision deleted: ' . $result->ID );
    } else {
        // 删除失败
        error_log( 'Revision deletion failed' );
    }
}

注意事项

  • 确保回调函数正确处理 $result 参数,因为它可能是 WP_Post 对象、false 或 null,需进行类型检查。
  • 此 Hook 仅适用于通过 REST API 的删除操作,不适用于其他删除方式(如直接数据库操作)。
  • 在插件或主题中使用时,注意避免与核心或其他插件冲突,建议添加唯一前缀。

📄 原文内容

Fires after a revision is deleted via the REST API.

Parameters

$resultWP_Post|false|null
The revision object (if it was deleted or moved to the Trash successfully) or false or null (failure). If the revision was moved to the Trash, $result represents its new state; if it was deleted, $result represents its state before deletion.
$requestWP_REST_Request
The request sent to the API.

Source

do_action( 'rest_delete_revision', $result, $request );

Changelog

Version Description
4.7.0 Introduced.