Title: WP_REST_Request::set_param
Published: December 9, 2015
Last modified: August 20, 2026

---

# WP_REST_Request::set_param( string $key, mixed $value )

## In this article

 * [Description](https://developer.wordpress.org/reference/classes/wp_rest_request/set_param/?output_format=md#description)
 * [Parameters](https://developer.wordpress.org/reference/classes/wp_rest_request/set_param/?output_format=md#parameters)
 * [Source](https://developer.wordpress.org/reference/classes/wp_rest_request/set_param/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wp_rest_request/set_param/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wp_rest_request/set_param/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wp_rest_request/set_param/?output_format=md#wp--skip-link--target)

Sets a parameter on the request.

## 󠀁[Description](https://developer.wordpress.org/reference/classes/wp_rest_request/set_param/?output_format=md#description)󠁿

If the given parameter key exists in any parameter type an update will take place,
otherwise a new param will be created in the first parameter type (respecting get_parameter_order()).

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wp_rest_request/set_param/?output_format=md#parameters)󠁿

 `$key`stringrequired

Parameter name.

`$value`mixedrequired

Parameter value.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wp_rest_request/set_param/?output_format=md#source)󠁿

    ```php
    public function set_param( $key, $value ) {
    	$order     = $this->get_parameter_order();
    	$found_key = false;

    	foreach ( $order as $type ) {
    		if ( 'defaults' !== $type && is_array( $this->params[ $type ] ) && array_key_exists( $key, $this->params[ $type ] ) ) {
    			$this->params[ $type ][ $key ] = $value;
    			$found_key                     = true;
    		}
    	}

    	if ( ! $found_key ) {
    		$this->params[ $order[0] ][ $key ] = $value;
    	}
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/rest-api/class-wp-rest-request.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.1/src/wp-includes/rest-api/class-wp-rest-request.php#L456)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/rest-api/class-wp-rest-request.php#L456-L470)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wp_rest_request/set_param/?output_format=md#related)󠁿

| Uses | Description | 
| [WP_REST_Request::get_parameter_order()](https://developer.wordpress.org/reference/classes/wp_rest_request/get_parameter_order/)`wp-includes/rest-api/class-wp-rest-request.php` |

Retrieves the parameter priority order.

  |

| Used by | Description | 
| [WP_REST_Request::offsetSet()](https://developer.wordpress.org/reference/classes/wp_rest_request/offsetset/)`wp-includes/rest-api/class-wp-rest-request.php` |

Sets a parameter on the request.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wp_rest_request/set_param/?output_format=md#changelog)󠁿

| Version | Description | 
| [4.4.0](https://developer.wordpress.org/reference/since/4.4.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_rest_request%2Fset_param%2F)
before being able to contribute a note or feedback.