Revert [21942] and have wp_publish_post() deal with the database directly. clean_post_cache() is now also called directly due to [21943].
fixes #22944 for trunk. Unit tests: [1174/tests]. see #11399. see #21963. git-svn-id: http://core.svn.wordpress.org/trunk@23206 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
5c283f52ba
commit
f9d07a1928
|
@ -3010,18 +3010,31 @@ function wp_update_post( $postarr = array(), $wp_error = false ) {
|
|||
* Publish a post by transitioning the post status.
|
||||
*
|
||||
* @since 2.1.0
|
||||
* @uses wp_update_post()
|
||||
* @uses $wpdb
|
||||
* @uses do_action() Calls 'edit_post', 'save_post', and 'wp_insert_post' on post_id and post data.
|
||||
*
|
||||
* @param mixed $post Post ID or object.
|
||||
*/
|
||||
function wp_publish_post( $post ) {
|
||||
global $wpdb;
|
||||
|
||||
if ( ! $post = get_post( $post ) )
|
||||
return;
|
||||
|
||||
if ( 'publish' == $post->post_status )
|
||||
return;
|
||||
|
||||
$wpdb->update( $wpdb->posts, array( 'post_status' => 'publish' ), array( 'ID' => $post->ID ) );
|
||||
|
||||
clean_post_cache( $post->ID );
|
||||
|
||||
$old_status = $post->post_status;
|
||||
$post->post_status = 'publish';
|
||||
wp_update_post( $post );
|
||||
wp_transition_post_status( 'publish', $old_status, $post );
|
||||
|
||||
do_action( 'edit_post', $post->ID, $post );
|
||||
do_action( 'save_post', $post->ID, $post );
|
||||
do_action( 'wp_insert_post', $post->ID, $post );
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue