wp_enqueue_script로 Google 지도 API 로드 중
다음 구문을 사용하여 Google 지도 API를 로드하려고 합니다.
add_action('admin_enqueue_scripts', 'load_google_maps');
...
function load_google_maps()
{
// The actual API key is configured in an options page
$key = get_option('google_maps_api_key');
$gmaps_url = 'http://maps.googleapis.com/maps/api/js?key=' . $key . '&sensor=false';
wp_enqueue_script('google-maps', $gmaps_url, NULL, NULL);
}
워드프레스는 &에서 &로 탈출하고 있습니다.이것은 실제로 Google 서버가 요청을 거부하게 만듭니다.브라우저 주소창에 "& sensor= false"를 마지막에 직접 입력하면 잘 로드됩니다.
WordPress track system: http://core.trac.wordpress.org/ticket/9243 에 이런 종류의 버그가 언급되어 있는 것을 보았지만, 그것은 무효라고 기각되었고, 요청에 응답한 관리자는 "&" 접근 방식이 이상이 없음을 보여주었습니다.구글의 입장에서는 절대로 문제가 되지 않습니다.
물론 HTML을 스크립트 태그로 에코하는 기능을 얻을 수 있지만, 가능하다면 wp_enqueue_script 시스템을 사용하고 싶습니다.
이것에 대한 해결책을 아는 사람?
건배.
추첨을 하다
우리 코드에 비슷한 것이 있는데 잘 작동하고 있습니다. (심지어 다음과 같이 인코딩됨)&
문제는 당신이 이미 알고 있는 것처럼 이중 부호화가 진행되고 있다는 것입니다.&
. 다음으로 변경하려고 합니다.
$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 종속성 관리를 사용하기 때문에 스크립트를 반향하는 것보다는 약간 더 나을 수 있습니다.
언급URL : https://stackoverflow.com/questions/9504142/loading-google-maps-api-with-wp-enqueue-script
'source' 카테고리의 다른 글
if/-then-else 문에 행을 삽입하는 중 (0) | 2023.09.21 |
---|---|
How do I run a function on a different component with vuex (non parent/child components) (0) | 2023.09.21 |
Angularjs에서 ng-messages로 서버 오류를 표시하는 방법 (0) | 2023.09.21 |
Wocommerce 사용자 정의 제품 텍스트 (0) | 2023.09.21 |
Storing Lat Lng values in MySQL using Spatial Point Type (0) | 2023.09.21 |