更新的新解决方案:
function wpse153622_transition_solution( $new_status, $old_status, $post ) {
if ( $new_status != $old_status && \'publish\' === $new_status && \'my-solution\' === $post->post_type ) {
update_post_meta( $post_id, \'my_json\', \'json\' );
}
}
add_action( \'transition_post_status\', \'wpse153622_transition_solution\', 10, 3 );
这应该只在1时触发。新帖子的状态与旧帖子的状态不同2。new post status等于publish和3。职位类型等于你的职位类型。
新的解决方案编辑:在阅读了post状态转换之后,我认为这应该可以做到:
function wpse153622_save_solution( $post_id, $post ) {
update_post_meta( $post_id, \'my_json\', \'json\' );
}
add_action( \'publish_my-solution\', \'wpse153622_save_solution\', 10, 2 );
这使用
publish_my-solution
, 只有当类型为
my-solution
已发布。看见
{status}_{post_type}
here.
使用旧解决方案save_post_{post_type}
操作将为您完成作业,但无论何时更新帖子和发布,都会调用该操作:
function wpse153622_save_solution( $post_id, $post, $update ) {
update_post_meta( $post_id, \'my_json\', \'json\' );
}
add_action( \'save_post_my-solution\', \'wpse153622_save_solution\', 10, 3 );
我以前用过这个,它很管用,但正如我所说,每当你对帖子进行更改时,它都会被调用。不过,我认为这不是什么大问题。