Untitled
unknown
javascript
2 years ago
2.6 kB
13
Indexable
if ( ! function_exists( 'fusion_add_url_parameter' ) ) {
function fusion_add_url_parameter( $url, $param_name, $param_value ) {
$url_data = wp_parse_url( $url );
if ( ! isset( $url_data['query'] ) ) {
$url_data['query'] = '';
}
$params = [];
parse_str( $url_data['query'], $params );
// Hỗ trợ nhiều giá trị cho một tham số
if ( isset($params[$param_name]) ) {
if ( is_array($param_value) ) {
foreach ($param_value as $value) {
$params[$param_name][] = $value;
}
} else {
$params[$param_name][] = $param_value;
}
$params[$param_name] = array_unique($params[$param_name]);
} else {
$params[$param_name] = is_array($param_value) ? $param_value : [$param_value];
}
if ( 'product_count' === $param_name && is_paged() ) {
$params['paged'] = '1';
}
// Xử lý mảng giá trị cho một tham số để chuyển thành chuỗi, sử dụng hàm rawurlencode cho mỗi giá trị
foreach ($params as $key => &$param) {
if (is_array($param)) {
$param = array_map('rawurlencode', $param);
$param = implode(',', $param);
} else {
$param = rawurlencode($param);
}
}
$url_data['query'] = http_build_query( $params, '', '&', PHP_QUERY_RFC3986 );
return fusion_build_url( $url_data );
}
}
if ( ! function_exists( 'fusion_build_url' ) ) {
function fusion_build_url( $url_data ) {
$url = '';
if ( isset( $url_data['host'] ) ) {
$url .= $url_data['scheme'] . '://';
if ( isset( $url_data['user'] ) ) {
$url .= $url_data['user'];
if ( isset( $url_data['pass'] ) ) {
$url .= ':' . $url_data['pass'];
}
$url .= '@';
}
$url .= $url_data['host'];
if ( isset( $url_data['port'] ) ) {
$url .= ':' . $url_data['port'];
}
}
if ( isset( $url_data['path'] ) ) {
$url .= $url_data['path'];
}
if ( isset( $url_data['query'] ) ) {
$url .= '?' . $url_data['query'];
}
if ( isset( $url_data['fragment'] ) ) {
$url .= '#' . $url_data['fragment'];
}
return $url;
}
}
Editor is loading...
Leave a Comment