diff --git src/wp-admin/options-writing.php src/wp-admin/options-writing.php
index 8134c2fb83..e5f36d7be7 100644
--- src/wp-admin/options-writing.php
+++ src/wp-admin/options-writing.php
@@ -80,11 +80,13 @@ require_once ABSPATH . 'wp-admin/admin-header.php';
 <?php
 wp_dropdown_categories(
 	array(
-		'hide_empty'   => 0,
-		'name'         => 'default_category',
-		'orderby'      => 'name',
-		'selected'     => get_option( 'default_category' ),
-		'hierarchical' => true,
+		'hide_empty'        => 0,
+		'name'              => 'default_category',
+		'orderby'           => 'name',
+		'selected'          => get_option( 'default_category' ),
+		'hierarchical'      => true,
+		'show_option_none'  => __( '-- none --' ),
+		'option_none_value' => 0,
 	)
 );
 ?>
@@ -174,11 +176,13 @@ if ( apply_filters( 'enable_post_by_email_configuration', true ) ) {
 	<?php
 	wp_dropdown_categories(
 		array(
-			'hide_empty'   => 0,
-			'name'         => 'default_email_category',
-			'orderby'      => 'name',
-			'selected'     => get_option( 'default_email_category' ),
-			'hierarchical' => true,
+			'hide_empty'        => 0,
+			'name'              => 'default_email_category',
+			'orderby'           => 'name',
+			'selected'          => get_option( 'default_email_category' ),
+			'hierarchical'      => true,
+			'show_option_none'  => __( '-- none --' ),
+			'option_none_value' => 0,
 		)
 	);
 	?>
diff --git src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
index 88ab53b258..c941159dae 100644
--- src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
+++ src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
@@ -1402,6 +1402,25 @@ class WP_REST_Posts_Controller extends WP_REST_Controller {
 				continue;
 			}
 
+			// Empty terms checks.
+			if ( empty( $request[ $base ] ) ) {
+
+				$default_term = null;
+
+				// Built-in taxonomy.
+				if ( 'category' === $taxonomy->name ) {
+					$default_term = get_option( 'default_category' );
+				}
+				// Custom taxonomies.
+				elseif ( ! empty( $taxonomy->default_term ) ) {
+					$default_term = get_option( 'default_term_' . $taxonomy->name );
+				}
+
+				if ( ! empty( $default_term ) ) {
+					$request[ $base ] = array( (int)$default_term );
+				}
+			}
+
 			$result = wp_set_object_terms( $post_id, $request[ $base ], $taxonomy->name );
 
 			if ( is_wp_error( $result ) ) {
diff --git tests/phpunit/tests/rest-api/rest-posts-controller.php tests/phpunit/tests/rest-api/rest-posts-controller.php
index 3c6c668ff0..cb7f6135f9 100644
--- tests/phpunit/tests/rest-api/rest-posts-controller.php
+++ tests/phpunit/tests/rest-api/rest-posts-controller.php
@@ -3445,7 +3445,16 @@ class WP_Test_REST_Posts_Controller extends WP_Test_REST_Post_Type_Controller_Te
 		$request->set_body_params( $params );
 		$response = rest_get_server()->dispatch( $request );
 		$new_data = $response->get_data();
+		$this->assertEquals( array( 1 ), $new_data['categories'] );
+
+		// Check with empty default category settings.
+		$default_term = get_option( 'default_category' );
+		update_option( 'default_category', 0 );
+		$request->set_body_params( $params );
+		$response = rest_get_server()->dispatch( $request );
+		$new_data = $response->get_data();
 		$this->assertEquals( array(), $new_data['categories'] );
+		update_option( 'default_category', $default_term );
 	}
 
 	/**
