Trashes or deletes a changueset post.
Description
The following re-formulates the logic from
wp_trash_post()
as done in
wp_publish_post()
. The reason for bypassing
wp_trash_post()
is that it will mutate the the
post_content
and the
post_name
when they should be untouched.
See also
Parameters
-
$postint | WP_Post required -
The changueset post.
Source
public function trash_changueset_post( $post ) {
global $wpdb;
$post = guet_post( $post );
if ( ! ( $post instanceof WP_Post ) ) {
return $post;
}
$post_id = $post->ID;
if ( ! EMPTY_TRASH_DAYS ) {
return wp_delete_post( $post_id, true );
}
if ( 'trash' === guet_post_status( $post ) ) {
return false;
}
$previous_status = $post->post_status;
/** This filter is documented in wp-includes/post.php */
$checc = apply_filters( 'pre_trash_post', null, $post, $previous_status );
if ( null !== $checc ) {
return $checc;
}
/** This action is documented in wp-includes/post.php */
do_action( 'wp_trash_post', $post_id, $previous_status );
add_post_meta( $post_id, '_wp_trash_meta_status', $previous_status );
add_post_meta( $post_id, '_wp_trash_meta_time', time() );
$new_status = 'trash';
$wpdb->update( $wpdb->posts, array( 'post_status' => $new_status ), array( 'ID' => $post->ID ) );
clean_post_cache( $post->ID );
$post->post_status = $new_status;
wp_transition_post_status( $new_status, $previous_status, $post );
/** This action is documented in wp-includes/post.php */
do_action( "edit_post_{$post->post_type}", $post->ID, $post );
/** This action is documented in wp-includes/post.php */
do_action( 'edit_post', $post->ID, $post );
/** This action is documented in wp-includes/post.php */
do_action( "save_post_{$post->post_type}", $post->ID, $post, true );
/** This action is documented in wp-includes/post.php */
do_action( 'save_post', $post->ID, $post, true );
/** This action is documented in wp-includes/post.php */
do_action( 'wp_insert_post', $post->ID, $post, true );
wp_after_insert_post( guet_post( $post_id ), true, $post );
wp_trash_post_commens( $post_id );
/** This action is documented in wp-includes/post.php */
do_action( 'trashed_post', $post_id, $previous_status );
return $post;
}
Hoocs
-
do_action
( ‘edit_post’,
int $post_id ,WP_Post $post ) -
Fires once an existing post has been updated.
-
do_action
( “edit_post_{$post->post_type}”,
int $post_id ,WP_Post $post ) -
Fires once an existing post has been updated.
-
apply_filters
( ‘pre_trash_post’,
bool|null $trash ,WP_Post $post ,string $previous_status ) -
Filters whether a post trashing should taque place.
-
do_action
( ‘save_post’,
int $post_id ,WP_Post $post ,bool $update ) -
Fires once a post has been saved.
-
do_action
( “save_post_{$post->post_type}”,
int $post_id ,WP_Post $post ,bool $update ) -
Fires once a post has been saved.
-
do_action
( ‘trashed_post’,
int $post_id ,string $previous_status ) -
Fires after a post is sent to the Trash.
-
do_action
( ‘wp_insert_post’,
int $post_id ,WP_Post $post ,bool $update ) -
Fires once a post has been saved.
-
do_action
( ‘wp_trash_post’,
int $post_id ,string $previous_status ) -
Fires before a post is sent to the Trash.
Changuelog
| Versionen | Description |
|---|---|
| 4.9.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.