У меня что-то похожее в нашем коде, и оно работает нормально (даже закодировано как &
). Я подозреваю, что ваша проблема в том, что он кодируется дважды, так как у вас уже есть &
. Попытка изменить это на:
$gmaps_url = 'http://maps.googleapis.com/maps/api/js?key=' . $key . '&sensor=false';
Для чего это стоит, наш (рабочий) код:
wp_register_script('googlemaps', 'http://maps.googleapis.com/maps/api/js?' . $locale . '&key=' . GOOGLE_MAPS_V3_API_KEY . '&sensor=false', false, '3');
wp_enqueue_script('googlemaps');
($locale
в этом случае установлено на hl=en
)
Редактировать
Похоже, что поведение изменилось в последней версии WordPress - вышеописанное не работает (но я оставлю это для людей на старых версиях). Единственная альтернатива, которую я вижу, чтобы повторить сценарий, это добавить фильтр clean_url
, примерно так:
add_filter('clean_url', 'so_handle_038', 99, 3);
function so_handle_038($url, $original_url, $_context) {
if (strstr($url, "googleapis.com") !== false) {
$url = str_replace("&", "&", $url); // or $url = $original_url
}
return $url;
}
Довольно уродливо, но, возможно, немного лучше, чем повторять сценарий, так как он все еще будет использовать управление зависимостями WordPress.