Index: src/wp-includes/taxonomy.php
===================================================================
--- src/wp-includes/taxonomy.php	(revision 47748)
+++ src/wp-includes/taxonomy.php	(working copy)
@@ -707,7 +707,7 @@
  *
  * @param int|array    $term_ids   Term id or array of term ids of terms that will be used.
  * @param string|array $taxonomies String of taxonomy name or Array of string values of taxonomy names.
- * @param array|string $args       Change the order of the object_ids, either ASC or DESC.
+ * @param array|string $args       Change the order of the object_ids, either ASC or DESC or limit return with numeric value -1 or greater (-1 returns all object_ids).
  * @return WP_Error|array If the taxonomy does not exist, then WP_Error will be returned. On success.
  *  the array can be empty meaning that there are no $object_ids found or it will return the $object_ids found.
  */
@@ -726,10 +726,16 @@
 		}
 	}
 
-	$defaults = array( 'order' => 'ASC' );
+	$defaults = array(
+		'order' => 'ASC',
+		'limit' => -1,
+	);
 	$args     = wp_parse_args( $args, $defaults );
 
 	$order = ( 'desc' === strtolower( $args['order'] ) ) ? 'DESC' : 'ASC';
+	$limit = ( -1 < intval( $args['limit'] ) && is_numeric( $args['limit'] ) )
+		? sprintf( 'LIMIT %d', intval( $args['limit'] ) )
+		: '';
 
 	$term_ids = array_map( 'intval', $term_ids );
 
@@ -736,7 +742,7 @@
 	$taxonomies = "'" . implode( "', '", array_map( 'esc_sql', $taxonomies ) ) . "'";
 	$term_ids   = "'" . implode( "', '", $term_ids ) . "'";
 
-	$sql = "SELECT tr.object_id FROM $wpdb->term_relationships AS tr INNER JOIN $wpdb->term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ($taxonomies) AND tt.term_id IN ($term_ids) ORDER BY tr.object_id $order";
+	$sql = trim( "SELECT tr.object_id FROM $wpdb->term_relationships AS tr INNER JOIN $wpdb->term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ($taxonomies) AND tt.term_id IN ($term_ids) ORDER BY tr.object_id $order $limit" );
 
 	$last_changed = wp_cache_get_last_changed( 'terms' );
 	$cache_key    = 'get_objects_in_term:' . md5( $sql ) . ":$last_changed";
Index: tests/phpunit/tests/taxonomy.php
===================================================================
--- tests/phpunit/tests/taxonomy.php	(revision 47748)
+++ tests/phpunit/tests/taxonomy.php	(working copy)
@@ -323,6 +323,32 @@
 	}
 
 	/**
+	 * @ticket 44969
+	 */
+	public function test_get_objects_in_term_should_return_limit() {
+		$total       = 5;
+		$post_ids    = $this->factory->post->create_many( $total );
+		$category_id = $this->factory->category->create();
+
+		foreach ( $post_ids as $post_id ) {
+			wp_set_post_categories( $post_id, $category_id );
+		}
+
+		$this->assertEquals( $total, count( get_objects_in_term( $category_id, 'category' ) ) );
+		$this->assertEquals( $total, count( get_objects_in_term( $category_id, 'category', array( 'limit' => -1 ) ) ) );
+		$this->assertEquals( $total, count( get_objects_in_term( $category_id, 'category', array( 'limit' => 'unittest' ) ) ) );
+
+		$limit = 3;
+		$this->assertEquals( $limit, count( get_objects_in_term( $category_id, 'category', array( 'limit' => $limit ) ) ) );
+
+		$limit = 1;
+		$this->assertEquals( $limit, count( get_objects_in_term( $category_id, 'category', array( 'limit' => $limit ) ) ) );
+
+		$limit = 0;
+		$this->assertEquals( $limit, count( get_objects_in_term( $category_id, 'category', array( 'limit' => $limit ) ) ) );
+	}
+
+	/**
 	 * @ticket 37094
 	 */
 	public function test_term_assignment_should_invalidate_get_objects_in_term_cache() {
