wp_check_revisioned_meta_fields_have_changed()
云策文档标注
概述
wp_check_revisioned_meta_fields_have_changed() 函数用于检查修订后的文章元字段是否发生变化。它通过比较当前文章和最新修订版的元数据来确定文章是否有更改。
关键要点
- 函数参数包括 $post_has_changed(布尔值,表示文章是否已更改)、$last_revision(WP_Post 对象,最新修订版)和 $post(WP_Post 对象,当前文章)。
- 返回值为布尔值,指示文章是否因元字段变化而更改。
- 内部使用 wp_post_revision_meta_keys() 获取需要修订的元字段键,并通过 get_post_meta() 比较元数据。
- 如果发现任何元字段值不同,则设置 $post_has_changed 为 true 并提前终止循环。
代码示例
function wp_check_revisioned_meta_fields_have_changed( $post_has_changed, WP_Post $last_revision, WP_Post $post ) {
foreach ( wp_post_revision_meta_keys( $post->post_type ) as $meta_key ) {
if ( get_post_meta( $post->ID, $meta_key ) !== get_post_meta( $last_revision->ID, $meta_key ) ) {
$post_has_changed = true;
break;
}
}
return $post_has_changed;
}注意事项
- 此函数在 WordPress 6.4.0 版本中引入。
- 依赖于 wp_post_revision_meta_keys() 来确定哪些元字段应被修订,确保元字段已正确配置。
- 比较元数据时使用严格不等于运算符(!==),以同时检查值和类型是否一致。
原文内容
Check whether revisioned post meta fields have changed.
Parameters
Source
function wp_check_revisioned_meta_fields_have_changed( $post_has_changed, WP_Post $last_revision, WP_Post $post ) {
foreach ( wp_post_revision_meta_keys( $post->post_type ) as $meta_key ) {
if ( get_post_meta( $post->ID, $meta_key ) !== get_post_meta( $last_revision->ID, $meta_key ) ) {
$post_has_changed = true;
break;
}
}
return $post_has_changed;
}
Changelog
| Version | Description |
|---|---|
| 6.4.0 | Introduced. |