0

WordPressのクエリ文字列を削除したいのですが、次のように書いています。

function _remove_script_version( $src ){
$parts = explode( '?', $src );
return $parts[0];
}
add_filter( 'script_loader_src', '_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );

ただし、1つのクエリ文字列を無視する必要があります。

http://maps.googleapis.com/maps/api/js

どうやって書くの?

4

1 に答える 1

0

3.4.1たとえば、この URL に含まれるバージョンを削除したくない場合は、http://maps.googleapis.com/maps/api/js?sensor=false&v=3&language=en%C2%AEion=US&ver=3.4.1

function _remove_script_version($src) {
    preg_match(
        "#^(https?)://([.0-9a-zA-Z-]+)(/?.*?)([^/]*)$#",
        $src,
        $queryStringPartsArray
    );
    $endOfUrlArray = explode('?', $queryStringPartsArray[4]);
    $paramsArray = explode('&', $endOfUrlArray[1]);
    foreach($paramsArray as $param) {
        $parts = explode('=', $param);
        if(($parts[1] == "ver") && !preg_match("/3.4.1/", $parts[1])) {
            return $queryStringPartsArray[1]."://".
                   $queryStringPartsArray[2].
                   $queryStringPartsArray[3].
                   $endOfUrlArray[0];
        }
    }
}
于 2012-08-10T21:02:02.517 に答える