我刚意识到wp-includes/post.php
(source), 在…的结尾wp_insert_post()
, 两者save_post
和wp_insert_post
使用完全相同的参数依次调用操作:
3520 /**
3521 * Fires once a post has been saved.
3522 *
3523 * @since 1.5.0
3524 *
3525 * @param int $post_ID Post ID.
3526 * @param WP_Post $post Post object.
3527 * @param bool $update Whether this is an existing post being updated or not.
3528 */
3529 do_action( \'save_post\', $post_ID, $post, $update );
3530
3531 /**
3532 * Fires once a post has been saved.
3533 *
3534 * @since 2.0.0
3535 *
3536 * @param int $post_ID Post ID.
3537 * @param WP_Post $post Post object.
3538 * @param bool $update Whether this is an existing post being updated or not.
3539 */
3540 do_action( \'wp_insert_post\', $post_ID, $post, $update );
它们之间什么都没有发生,所以使用其中一个或另一个似乎没有区别。
相同的冗余在下面的wp_publish_post()
(source), 以及oldest tracked version of the file 还有同样的两个动作(谢谢toscho 用于指出这些)。
我错过什么了吗?为什么它们都在那里?如果我选择使用一个动作,是否有理由选择一个而不是另一个?