Ticket #14754: 14754.2.patch
File 14754.2.patch, 1.8 KB (added by , 14 years ago) |
---|
-
wp-includes/functions.php
1359 1359 * @since 1.5.0 1360 1360 * 1361 1361 * @param mixed $param1 Either newkey or an associative_array 1362 * @param mixed $param2 Either newvalue or oldquery oruri1363 * @param mixed $param3 Optional. Old query oruri1362 * @param mixed $param2 Optional. Either newvalue or oldquery_or_uri 1363 * @param mixed $param3 Optional. oldquery_or_uri 1364 1364 * @return string New URL query string. 1365 1365 */ 1366 function add_query_arg( ) {1366 function add_query_arg($param1, $param2 = false, $param3 = false) { 1367 1367 $ret = ''; 1368 if ( is_array( func_get_arg(0) ) ) { 1369 if ( @func_num_args() < 2 || false === @func_get_arg( 1 ) ) 1370 $uri = $_SERVER['REQUEST_URI']; 1371 else 1372 $uri = @func_get_arg( 1 ); 1373 } else { 1374 if ( @func_num_args() < 3 || false === @func_get_arg( 2 ) ) 1375 $uri = $_SERVER['REQUEST_URI']; 1376 else 1377 $uri = @func_get_arg( 2 ); 1378 } 1368 $uri = is_array( $param1 ) ? $param2 : $param3; 1369 false === $uri && ($uri = $_SERVER['REQUEST_URI']); 1379 1370 1380 1371 if ( $frag = strstr( $uri, '#' ) ) 1381 1372 $uri = substr( $uri, 0, -strlen( $frag ) ); … … 1406 1397 $query = $uri; 1407 1398 } 1408 1399 1400 $qs = array(); 1409 1401 wp_parse_str( $query, $qs ); 1410 1402 $qs = urlencode_deep( $qs ); // this re-URL-encodes things that were already in the query string 1411 if ( is_array( func_get_arg( 0 ) ) ) { 1412 $kayvees = func_get_arg( 0 ); 1413 $qs = array_merge( $qs, $kayvees ); 1403 if ( is_array( $param1 ) ) { 1404 $qs = array_merge( $qs, $param1 ); 1414 1405 } else { 1415 $qs[ func_get_arg( 0 )] = func_get_arg( 1 );1406 $qs[$param1] = $param2; 1416 1407 } 1417 1408 1418 foreach ( (array) $qs as $k => $v ) { 1419 if ( $v === false ) 1420 unset( $qs[$k] ); 1421 } 1409 $qs = array_filter( $qs ); 1422 1410 1423 1411 $ret = build_query( $qs ); 1424 1412 $ret = trim( $ret, '?' );