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.
|
* Publish a post by transitioning the post status.
|
||||||
*
|
*
|
||||||
* @since 2.1.0
|
* @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.
|
* @param mixed $post Post ID or object.
|
||||||
*/
|
*/
|
||||||
function wp_publish_post( $post ) {
|
function wp_publish_post( $post ) {
|
||||||
|
global $wpdb;
|
||||||
|
|
||||||
if ( ! $post = get_post( $post ) )
|
if ( ! $post = get_post( $post ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if ( 'publish' == $post->post_status )
|
if ( 'publish' == $post->post_status )
|
||||||
return;
|
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';
|
$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