所以你第一次尝试wp_insert_post_data
并且可以在保存草稿时保存元数据,但在发布时无法保存。然后你试着save_post
并且可以在发布时保存元数据,但在保存草稿时不能。
最简单的解决方案是将两者结合起来。
add_action(\'save_post\', \'save_details\');
add_action(\'wp_insert_post_data\', \'save_details\');
编辑两者
save_post
和
wp_insert_post_data
同时调用,并将两个参数传递给回调函数。在源代码中,它如下所示:
do_action(\'save_post\', $post_ID, $post);
do_action(\'wp_insert_post\', $post_ID, $post);
b但函数不接受任何参数。这将使
return $post_ID
失败,并可能导致其他问题。
您应该具备:
function save_details( $post_ID, $post ) {
...
}
你的钩子应该是:
add_action( \'save_post\', \'save_details\', 10, 2 );
这将通过两个
$post_ID
和
$post
并且应该使事情运行得更顺畅一些。