WordPress函数:wp_trash_post 移动文章到回收站

江河/ 2023年11月27日/ WordPress/ 浏览 1065

函数原型:


wp_trash_post( int $post_id ): WP_Post|false|null


将帖子或页面移动到垃圾站,如果垃圾站被禁用,帖子或页面将被永久删除。


参数说明:


$post_id,Post ID。如果EMPTY_TRASH_DAYS等于true,则默认为全局$Post的ID。


函数源码:


function wp_trash_post( $post_id = 0 ) {
	if ( ! EMPTY_TRASH_DAYS ) {
		return wp_delete_post( $post_id, true );
	}

	$post = get_post( $post_id );

	if ( ! $post ) {
		return $post;
	}

	if ( 'trash' === $post->post_status ) {
		return false;
	}

	$previous_status = $post->post_status;

	$check = apply_filters( 'pre_trash_post', null, $post, $previous_status );

	if ( null !== $check ) {
		return $check;
	}

	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() );

	$post_updated = wp_update_post(
		array(
			'ID'          => $post_id,
			'post_status' => 'trash',
		)
	);

	if ( ! $post_updated ) {
		return false;
	}

	wp_trash_post_comments( $post_id );

	do_action( 'trashed_post', $post_id, $previous_status );

	return $post;
}


包含钩子:


apply_filters( 'pre_trash_post', bool|null $trash, WP_Post $post, string $previous_status )

do_action( 'trashed_post', int $post_id, string $previous_status )

do_action( 'wp_trash_post', int $post_id, string $previous_status )


使用举例:


wp_trash_post( $post_id = 1 );


移动 post ID 为 1 的文章到回收站。


发表评论

暂无评论,抢个沙发...

客服 工单