diff --git wp-includes/taxonomy-functions.php wp-includes/taxonomy-functions.php
index a13424b..466e3f8 100644
--- wp-includes/taxonomy-functions.php
+++ wp-includes/taxonomy-functions.php
@@ -1072,6 +1072,10 @@ function get_terms( $taxonomies, $args = '' ) {
 		'hierarchical' => true, 'child_of' => 0, 'get' => '', 'name__like' => '', 'description__like' => '',
 		'pad_counts' => false, 'offset' => '', 'search' => '', 'cache_domain' => 'core',
 		'update_term_meta_cache' => true, 'meta_query' => '' );
+
+	// Keep a pristine copy of `$args` to pass to filters.
+	$_args = $args;
+
 	$args = wp_parse_args( $args, $defaults );
 	$args['number'] = absint( $args['number'] );
 	$args['offset'] = absint( $args['offset'] );
@@ -1106,11 +1110,13 @@ function get_terms( $taxonomies, $args = '' ) {
 	 * Filter the terms query arguments.
 	 *
 	 * @since 3.1.0
+	 * @since 4.4.0 Added the `$_args` parameter
 	 *
 	 * @param array $args       An array of get_term() arguments.
 	 * @param array $taxonomies An array of taxonomies.
+	 * @param array $_args      Array of `get_terms()` arguments, as passed to the function.
 	 */
-	$args = apply_filters( 'get_terms_args', $args, $taxonomies );
+	$args = apply_filters( 'get_terms_args', $args, $taxonomies, $_args );
 
 	// Avoid the query if the queried parent/child_of term has no descendants.
 	$child_of = $args['child_of'];
@@ -1155,12 +1161,14 @@ function get_terms( $taxonomies, $args = '' ) {
 		 * Filter the given taxonomy's terms cache.
 		 *
 		 * @since 2.3.0
+		 * @since 4.4.0 Added the `$_args` parameter
 		 *
 		 * @param array $cache      Cached array of terms for the given taxonomy.
 		 * @param array $taxonomies An array of taxonomies.
 		 * @param array $args       An array of get_terms() arguments.
+		 * @param array $_args      Array of `get_terms()` arguments, as passed to the function.
 		 */
-		return apply_filters( 'get_terms', $cache, $taxonomies, $args );
+		return apply_filters( 'get_terms', $cache, $taxonomies, $args, $_args );
 	}
 
 	$_orderby = strtolower( $args['orderby'] );
@@ -1189,12 +1197,14 @@ function get_terms( $taxonomies, $args = '' ) {
 	 * Filter the ORDERBY clause of the terms query.
 	 *
 	 * @since 2.8.0
+	 * @since 4.4.0 Added the `$_args` parameter
 	 *
 	 * @param string $orderby    `ORDERBY` clause of the terms query.
 	 * @param array  $args       An array of terms query arguments.
 	 * @param array  $taxonomies An array of taxonomies.
+	 * @param array  $_args      Array of `get_terms()` arguments, as passed to the function.
 	 */
-	$orderby = apply_filters( 'get_terms_orderby', $orderby, $args, $taxonomies );
+	$orderby = apply_filters( 'get_terms_orderby', $orderby, $args, $taxonomies, $_args );
 
 	$order = strtoupper( $args['order'] );
 	if ( ! empty( $orderby ) ) {
@@ -1261,12 +1271,14 @@ function get_terms( $taxonomies, $args = '' ) {
 	 * Filter the terms to exclude from the terms query.
 	 *
 	 * @since 2.3.0
+	 * @since 4.4.0 Added the `$_args` parameter
 	 *
 	 * @param string $exclusions `NOT IN` clause of the terms query.
 	 * @param array  $args       An array of terms query arguments.
 	 * @param array  $taxonomies An array of taxonomies.
+	 * @param array  $_args      Array of `get_terms()` arguments, as passed to the function.
 	 */
-	$exclusions = apply_filters( 'list_terms_exclusions', $exclusions, $args, $taxonomies );
+	$exclusions = apply_filters( 'list_terms_exclusions', $exclusions, $args, $taxonomies, $_args );
 
 	if ( ! empty( $exclusions ) ) {
 		$where .= $exclusions;
@@ -1379,12 +1391,14 @@ function get_terms( $taxonomies, $args = '' ) {
 	 * Use of this filter can result in unpredictable behavior, and is not recommended.
 	 *
 	 * @since 2.8.0
+	 * @since 4.4.0 Added the `$_args` parameter
 	 *
 	 * @param array $selects    An array of fields to select for the terms query.
 	 * @param array $args       An array of term query arguments.
 	 * @param array $taxonomies An array of taxonomies.
+	 * @param array $_args      Array of `get_terms()` arguments, as passed to the function.
 	 */
-	$fields = implode( ', ', apply_filters( 'get_terms_fields', $selects, $args, $taxonomies ) );
+	$fields = implode( ', ', apply_filters( 'get_terms_fields', $selects, $args, $taxonomies, $_args ) );
 
 	$join .= " INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id";
 
@@ -1394,12 +1408,14 @@ function get_terms( $taxonomies, $args = '' ) {
 	 * Filter the terms query SQL clauses.
 	 *
 	 * @since 3.1.0
+	 * @since Added the `$_args` parameter
 	 *
 	 * @param array $pieces     Terms query SQL clauses.
 	 * @param array $taxonomies An array of taxonomies.
 	 * @param array $args       An array of terms query arguments.
+	 * @param array $_args      Array of `get_terms()` arguments, as passed to the function.
 	 */
-	$clauses = apply_filters( 'terms_clauses', compact( $pieces ), $taxonomies, $args );
+	$clauses = apply_filters( 'terms_clauses', compact( $pieces ), $taxonomies, $args, $_args );
 
 	$fields = isset( $clauses[ 'fields' ] ) ? $clauses[ 'fields' ] : '';
 	$join = isset( $clauses[ 'join' ] ) ? $clauses[ 'join' ] : '';
@@ -1429,7 +1445,7 @@ function get_terms( $taxonomies, $args = '' ) {
 		wp_cache_add( $cache_key, array(), 'terms', DAY_IN_SECONDS );
 
 		/** This filter is documented in wp-includes/taxonomy-functions.php */
-		return apply_filters( 'get_terms', array(), $taxonomies, $args );
+		return apply_filters( 'get_terms', array(), $taxonomies, $args, $_args );
 	}
 
 	if ( $child_of ) {
@@ -1501,8 +1517,8 @@ function get_terms( $taxonomies, $args = '' ) {
 
 	wp_cache_add( $cache_key, $terms, 'terms', DAY_IN_SECONDS );
 
-	/** This filter is documented in wp-includes/taxonomy */
-	return apply_filters( 'get_terms', $terms, $taxonomies, $args );
+	/** This filter is documented in wp-includes/taxonomy-functions.php */
+	return apply_filters( 'get_terms', $terms, $taxonomies, $args, $_args );
 }
 
 /**
