钩子文档

delete_{$meta_type}_metadata

💡 云策文档标注

概述

delete_{$meta_type}_metadata 是一个 WordPress 过滤器钩子,用于在删除特定类型的元数据时提供短路机制。钩子名称中的 $meta_type 动态部分指代元对象类型,如博客、文章、评论等。

关键要点

  • 钩子名称基于 $meta_type 动态生成,例如 delete_post_metadata、delete_user_metadata 等。
  • 返回非空值将短路 delete_metadata() 函数,阻止元数据删除操作。
  • 参数包括 $delete、$object_id、$meta_key、$meta_value 和 $delete_all,用于控制删除行为。

代码示例

$check = apply_filters( "delete_{$meta_type}_metadata", null, $object_id, $meta_key, $meta_value, $delete_all );

注意事项

  • 钩子从 WordPress 3.1.0 版本引入,主要用于自定义元数据删除逻辑。
  • 元值 $meta_value 必须可序列化,如果为非标量类型。

📄 原文内容

Short-circuits deleting metadata of a specific type.

Description

The dynamic portion of the hook name, $meta_type, refers to the meta object type (blog, post, comment, term, user, or any other type with an associated meta table).
Returning a non-null value will effectively short-circuit the function.

Possible hook names include:

  • delete_blog_metadata
  • delete_post_metadata
  • delete_comment_metadata
  • delete_term_metadata
  • delete_user_metadata

Parameters

$deletenull|bool
Whether to allow metadata deletion of the given type.
$object_idint
ID of the object metadata is for.
$meta_keystring
Metadata key.
$meta_valuemixed
Metadata value. Must be serializable if non-scalar.
$delete_allbool
Whether to delete the matching metadata entries for all objects, ignoring the specified $object_id.
Default false.

Source

$check = apply_filters( "delete_{$meta_type}_metadata", null, $object_id, $meta_key, $meta_value, $delete_all );

Changelog

Version Description
3.1.0 Introduced.