所以我找到了一个解决方案。根据具体需要,可以使用4个挂钩来完成此操作。挂钩来自wp-includes/meta.php
在函数中update_metadata()
和add_metadata()
.
挂钩:update_postmeta
updated_postmeta
add_post_meta
added_post_meta
这些都是在不同的州被调用的,从名称来看,这是不言而喻的。add_post_meta
和update_postmeta
在任何DB更改之前调用,并且updated_postmeta
和added_post_meta
在数据库发生任何更改后立即调用。
示例:
//Example usage for updated and added.
function page_template_check( $meta_id, $post_id, $meta_key, $meta_value ) {
// Stop if not the correct meta key
if ( $meta_key != \'_wp_page_template\' ) {
return false;
}
//Do stuff here
};
add_action( \'added_post_meta\', \'page_template_check\', 10, 4 ); //after add
add_action( \'updated_postmeta\', \'page_template_check\', 10, 4 ); //after update