_remove_qs_args_if_not_in_url()
云策文档标注
概述
_remove_qs_args_if_not_in_url() 是一个 WordPress 内部函数,用于从查询字符串中移除指定参数,如果这些参数在给定 URL 中不存在。开发者应避免在插件代码中使用此函数。
关键要点
- 函数作用:根据 URL 检查并移除查询字符串中不存在的参数。
- 参数:$query_string(字符串,必需)、$args_to_check(数组,必需)、$url(字符串,必需)。
- 返回值:返回修改后的查询字符串。
- 注意事项:此函数为 WordPress 核心内部使用,不建议在插件或主题中直接调用。
代码示例
function _remove_qs_args_if_not_in_url( $query_string, array $args_to_check, $url ) {
$parsed_url = parse_url( $url );
if ( ! empty( $parsed_url['query'] ) ) {
parse_str( $parsed_url['query'], $parsed_query );
foreach ( $args_to_check as $qv ) {
if ( ! isset( $parsed_query[ $qv ] ) ) {
$query_string = remove_query_arg( $qv, $query_string );
}
}
} else {
$query_string = remove_query_arg( $args_to_check, $query_string );
}
return $query_string;
}注意事项
此函数主要用于 WordPress 核心内部处理,如 redirect_canonical() 函数中,开发者应使用 remove_query_arg() 等公共函数替代。
原文内容
Removes arguments from a query string if they are not present in a URL DO NOT use this in plugin code.
Parameters
$query_stringstringrequired$args_to_checkarrayrequired$urlstringrequired
Source
function _remove_qs_args_if_not_in_url( $query_string, array $args_to_check, $url ) {
$parsed_url = parse_url( $url );
if ( ! empty( $parsed_url['query'] ) ) {
parse_str( $parsed_url['query'], $parsed_query );
foreach ( $args_to_check as $qv ) {
if ( ! isset( $parsed_query[ $qv ] ) ) {
$query_string = remove_query_arg( $qv, $query_string );
}
}
} else {
$query_string = remove_query_arg( $args_to_check, $query_string );
}
return $query_string;
}
Changelog
| Version | Description |
|---|---|
| 3.4.0 | Introduced. |