wp_restore_post_revision

函数
wp_restore_post_revision ( $revision, $fields = null )
参数
  • (int|WP_Post) $revision Revision ID or revision object.
    Required:
  • (array) $fields Optional. What fields to restore from. Defaults to all.
    Required:
    Default: null
返回值
  • (int|false|null) Null if error, false if no fields to restore, (int) post ID if success.
定义位置
相关方法
wp_get_post_revisionwp_delete_post_revisionwp_save_post_revisionwp_get_post_revisionswp_is_post_revision
引入
2.6.0
弃用
-

wp_restore_post_revision: 这是一个WordPress的函数,用来恢复一个文章的修订版到它的原始状态。它接收文章的ID和修订版的ID,并从修订版中恢复文章的内容和元数据。

将一个文章恢复到指定的修订版。

可以使用文章修订版的所有字段来恢复过去的修订版,或者只恢复选定的字段。

function wp_restore_post_revision( $revision, $fields = null ) {
	$revision = wp_get_post_revision( $revision, ARRAY_A );

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

	if ( ! is_array( $fields ) ) {
		$fields = array_keys( _wp_post_revision_fields( $revision ) );
	}

	$update = array();
	foreach ( array_intersect( array_keys( $revision ), $fields ) as $field ) {
		$update[ $field ] = $revision[ $field ];
	}

	if ( ! $update ) {
		return false;
	}

	$update['ID'] = $revision['post_parent'];

	$update = wp_slash( $update ); // Since data is from DB.

	$post_id = wp_update_post( $update );

	if ( ! $post_id || is_wp_error( $post_id ) ) {
		return $post_id;
	}

	// Update last edit user.
	update_post_meta( $post_id, '_edit_last', get_current_user_id() );

	/**
	 * Fires after a post revision has been restored.
	 *
	 * @since 2.6.0
	 *
	 * @param int $post_id     Post ID.
	 * @param int $revision_id Post revision ID.
	 */
	do_action( 'wp_restore_post_revision', $post_id, $revision['ID'] );

	return $post_id;
}

常见问题

FAQs
查看更多 >