add_query_arg()
Retrieves a modified URL query string.
CONTENTS
Description
You can rebuild the URL and append query variables to the URL query by using this function. There are two ways to use this function; either a single key and value, or an associative array.
Using a single key and value:
add_query_arg( 'key', 'value', 'http://example.com' );
Using an associative array:
add_query_arg( array(
'key1' => 'value1',
'key2' => 'value2',
), 'http://example.com' );
Omitting the URL from either use results in the current URL being used (the value of $_SERVER['REQUEST_URI']
).
Values are expected to be encoded appropriately with urlencode() or rawurlencode().
Setting any query variable’s value to boolean false removes the key (see remove_query_arg()).
Important: The return value of add_query_arg() is not escaped by default. Output should be late-escaped with esc_url() or similar to help prevent vulnerability to cross-site scripting (XSS) attacks.
Parameters
- $key
(string|array) (Required) Either a query variable key, or an associative array of query variables.
- $value
(string) (Optional) Either a query variable value, or a URL to act upon.
- $url
(string) (Optional) A URL to act upon.
Return
(string) New URL query string (unescaped).
Source
Changelog
Version | Description |
---|---|
1.5.0 | Introduced. |
More Information
Usage
1 2 3 4 5 6 7 8 9 10 11 12 | // Parameters as separate arguments add_query_arg( $param1 , $param2 , $old_query_or_uri ); // Parameters as array of key => value pairs add_query_arg( array ( 'key1' => 'value1' , 'key2' => 'value2' , ... ), $old_query_or_uri ); |
User Contributed Notes
You must log in before being able to contribute a note or feedback.
'WEB > WP(WordPress)' 카테고리의 다른 글
Custom payment gateway - redirect to the bank's page (0) | 2018.04.24 |
---|---|
WC_API – The WooCommerce API Callback (0) | 2018.04.23 |
dbDelta( string|array $queries = '', bool $execute = true ) (0) | 2018.04.16 |
woocommerce-gateway-offline/woocommerce-gateway-offline.php (0) | 2018.04.16 |
$wpdb Fatal error (0) | 2018.04.16 |
Assuming we’re at the WordPress URL “http://blog.example.com/client/?s=word”… Note the use of
esc_url()
before outputting the link. This is necessary because this function does not escape URLs and if output without escaping, would make the page vulnerable to XSS scripting.// This would output '/client/?s=word&foo=bar'
echo
esc_url( add_query_arg(
'foo'
,
'bar'
) );
// This would output '/client/?s=word&foo=bar&baz=tiny'
$arr_params
=
array
(
'foo'
=>
'bar'
,
'baz'
=>
'tiny'
);
echo
esc_url( add_query_arg(
$arr_params
) );
Since
get_permalink()
returns a full URL, you could use that when you want to add variables to a post’s page./*
* This would output whatever the URL to post ID 9 is, with 'hello=there'
* appended with either ? or &, depending on what's needed.
*/
echo
esc_url( add_query_arg(
'hello'
,
'there'
, get_permalink( 9 ) ) );
To safely redirect user to a custom page inside
plugins.php
// Redirect to Welcome Page.
// Redirects to your-domain.com/wp-admin/plugin.php?page=your_plugin_page.
wp_safe_redirect( add_query_arg(
array
(
'page'
=>
'your_plugin_page'
), admin_url(
'plugins.php'
) ) );
More often than not you’ll probably find yourself creating URLs using the following method within the page you’re currently on. In these cases you can use the URL you want to affect as the last parameter. The use of
esc_url()
is not required here, because the value is known to be safe.// This would output 'http://blog.example.com/2009/04/16/?hello=world'
echo
esc_url( add_query_arg(
'hello'
,
'world'
,
'http://blog.example.com/2009/04/16/'
) );
Removing values and setting via an associative array:
$query
=
'http://example.com/link?foo=bar'
;
$new_query
= add_query_arg(
array
(
'foo'
=> false,
'baz'
=>
'qux'
),
$query
);
print
(
$new_query
);
// http://example.com/link?baz=qux
A way to get the current total url using
add_query_arg
home_url( add_query_arg( null, null ));