根据已解析的参数创建URL


Creating a URL from parsed arguments

假设您使用wp_parse_args()构建了一个数组。Wordpress中是否有一种内置方法可以使用所述数组创建url,或者我必须求助于自定义函数?

PHP内置了一个函数,用于将数组转换为查询字符串:http_build_query

这里有一个例子:

$arr = array('name' => 'Eric', 'age' => 23, 'sex' => 'M');
$query = http_build_query($arr); // 'name=Eric&age=23&sex=M'
$url = 'http://example.com/?'.$query;

据我所知,您在WP中没有这样的特定函数。然而,我认为您可以解决您的问题,并使用以下代码获得当前URL(包括args):

global $wp;
$current_url = add_query_arg( $wp->query_string, '', home_url( $wp->request ) );

请注意,您可以替换"参数,甚至在需要时添加自己的参数。

如果由于某种原因,代码不符合您的要求,那么您的问题的答案可能是:

$args = wp_parse_args();
$str_params = '';
foreach($args as $key => $val) {
  $str_params .= ($str == '') ? "?" : "&";
  $str_params .= $key . "=" . $val;
}
$current_url = home_url( $wp->request ) . $str_params;