diff --git src/wp-includes/taxonomy-functions.php src/wp-includes/taxonomy-functions.php
index a20ce7c..bd69ae9 100644
--- src/wp-includes/taxonomy-functions.php
+++ src/wp-includes/taxonomy-functions.php
@@ -153,7 +153,27 @@ function get_taxonomies( $args = array(), $output = 'names', $operator = 'and' )
 
 	$field = ('names' == $output) ? 'name' : false;
 
-	return wp_filter_object_list($wp_taxonomies, $args, $operator, $field);
+	// Handle 'object_type' separately.
+	if ( isset( $args['object_type'] ) ) {
+		$object_type = (array) $args['object_type'];
+		unset( $args['object_type'] );
+	}
+
+	$taxonomies = wp_filter_object_list( $wp_taxonomies, $args, $operator );
+
+	if ( isset( $object_type ) ) {
+		foreach ( $taxonomies as $tax => $tax_data ) {
+			if ( ! array_intersect( $object_type, $tax_data->object_type ) ) {
+				unset( $taxonomies[ $tax ] );
+			}
+		}
+	}
+
+	if ( $field ) {
+		$taxonomies = wp_list_pluck( $taxonomies, $field );
+	}
+
+	return $taxonomies;
 }
 
 /**
diff --git tests/phpunit/tests/taxonomy.php tests/phpunit/tests/taxonomy.php
index 5a6af2e..fbdebaa 100644
--- tests/phpunit/tests/taxonomy.php
+++ tests/phpunit/tests/taxonomy.php
@@ -482,4 +482,22 @@ class Tests_Taxonomy extends WP_UnitTestCase {
 
 		$this->assertFalse( is_tax( 'wptests_tax' ) );
 	}
+
+	/**
+	 * @ticket 27918
+	 */
+	public function test_get_taxonomies_filtered_by_object_type() {
+		register_post_type( 'wptests_pt' );
+		register_taxonomy( 'wptests_tax_1', 'wptests_pt' );
+		register_taxonomy( 'wptests_tax_2', array( 'wptests_pt', 'post' ) );
+		register_taxonomy( 'wptests_tax_3', 'post' );
+
+		$taxonomies = get_taxonomies( array(
+			'object_type' => array( 'wptests_pt' ),
+		) );
+
+		$this->assertContains( 'wptests_tax_1', $taxonomies );
+		$this->assertContains( 'wptests_tax_2', $taxonomies );
+		$this->assertNotContains( 'wptests_tax_3', $taxonomies );
+	}
 }
