2017-05-12 2 views
0

저는 WordPress에 익숙하지 않으며 테마 개발에 대한 Udemy 과정을 따르고 있으며 한 부분은 Google Maps API 사용과 관련이 있습니다. 스크립트를 등록/대기열에 추가 할 때 페이지를 볼 때 HTML 소스 코드에 나타나지 않습니다. 개발자 콘솔에서도 오류가 발생하지 않습니다. Google지도 JS API를 워드 프레스에 대기열에 추가 할 수 없습니다.

functions.php에서 미리보기입니다 :

wp_register_script('googlemaps', 'https://maps.googleapis.com/maps/api/js?&key=AIzaSyCCyUD3v8kBVRphqG1RYjYcSKBcyC-prKw&callback=initMap', array(''), '', true); 
    wp_register_script('fluidboxjs', get_template_directory_uri() . '/js/jquery.fluidbox.min.js', array('jquery'), '2.0.5', true); 
    wp_register_script('script', get_template_directory_uri() . '/js/scripts.js', array('jquery'), '1.0.0', true); 

    wp_enqueue_script('googlemaps'); 
    wp_enqueue_script('jquery'); 
    wp_enqueue_script('fluidboxjs'); 
    wp_enqueue_script('script'); 
} 

add_action('wp_enqueue_scripts', 'lapizzeria_styles'); 

그리고 이것은 (내가 여기에 구글 API에 대한 링크를 볼 수있을 것으로 판단) 출력 바닥 글 아래에있는 HTML입니다 :

<script type='text/javascript' src='http://localhost/udemy/lapizzeria/wp-content/themes/lapizzeria/js/jquery.fluidbox.min.js?ver=2.0.5'></script> 
<script type='text/javascript' src='http://localhost/udemy/lapizzeria/wp-content/themes/lapizzeria/js/scripts.js?ver=1.0.0'></script> 
<script type='text/javascript' src='http://localhost/udemy/lapizzeria/wp-includes/js/wp-embed.min.js?ver=4.7.4'></script> 

흥미롭게도이 라인은 내가 대기열 때 머리에 나타납니다 않습니다 googlemaps :

<link rel='dns-prefetch' href='//maps.googleapis.com' /> 
이 문제에 약간의 배경으로

는 :

운동의 첫 번째 단계는 직접 front-page.phpGoogle's sample code (스크립트 & 스타일)을 배치했다 및지도 잘 표시됩니다.

번째 단계는, scripts.jsstyle.cssfront-page.php로부터 그 코드를 이동 functions.php에 배치 하였다.

스타일을 style.css으로 옮기는 것이 좋습니다. initMap() 기능을 scripts.js으로 옮기는 것이 좋습니다. 그러나 Google Maps API를 functions.php에 대기열에 넣거나 등록하려고 시도하면 다른 대기열에있는 항목과 마찬가지로 하단의지도 API에 <script>이 추가되지 않는 것처럼 보입니다.

차이가 있는지는 모르겠지만 로컬로 작업 중이며 MAMP를 실행 중입니다. 브라우저 캐시를 지우고 다른 브라우저를 사용해 보았습니다. 대기열에 포함 된 순서를 변경하려고했습니다.

편집 : 내가 발견 한 한 가지, 내가 googlemaps에 대한의 종속성을 넣으면 그것이 내가 기대하고있어 <script> 태그를 인쇄 않는다는 것입니다하지만 콘솔에서이 오류가 나타납니다 : initMap is not a function. 내 이해는 구글 맵스 API는 jQuery가 작동하지 않아야하므로 추가 정보가 관련이 있는지 확신 할 수 없다.

<script type='text/javascript' src='https://maps.googleapis.com/maps/api/js?key=AIzaSyCCyUD3v8kBVRphqG1RYjYcSKBcyC-prKw&#038;callback=initMap&#038;ver=4.7.4'></script> 

아마 뭔가 비린내 위의 라인에 나타나는 #038;와 함께 일이야?

도움이 될 것입니다.

답변

0

googlemaps에 대해 설정된 종속성으로 인한 것으로 판단됩니다. 빈 배열을 전달하여 스크립트에 대한 종속성을 지정하는 대신 배열에 빈 문자열이 포함됩니다. 스크립트가로드되지 않도록 종속성을 충족시킬 수 없습니다.

array('')array()으로 바꾸기 만하면됩니다.

wp_register_script('googlemaps', 'https://maps.googleapis.com/maps/api/js?&key=AIzaSyCCyUD3v8kBVRphqG1RYjYcSKBcyC-prKw&callback=initMap', array(), '', true); 
+0

감사합니다. 내가 그걸 놓쳤다는 것을 믿을 수 없어. – epsilon42

관련 문제