在使用 Advanced Custom Fields 插件时,可以使用以下代码来理解 validate_save_post 和 save_post 的差异。
validate_save_post 用于验证保存的数据是否符合要求,它会在数据被保存之前进行验证。如果数据不符合要求,则会阻止数据被保存。
save_post 用于在数据被保存后执行一些操作,比如在保存文章时将自定义字段的值更新到数据库中。
下面是代码示例:
// 使用 validate_save_post add_action('acf/validate_save_post', 'my_save_post_validation', 10, 1);
function my_save_post_validation($post_id) { // 验证逻辑 if (/* 验证不通过 */) { // 阻止保存数据 die("无法保存数据"); } }
// 使用 save_post add_action('acf/save_post', 'my_save_post_update', 10, 1);
function my_save_post_update($post_id) { // 更新逻辑 update_post_meta($post_id, 'my_custom_field', $_POST['my_custom_field']); }