Untitled
unknown
javascript
a year ago
2.6 kB
7
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