переменная Google Maps не определена - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь создать карту с несколькими маркерами, сгенерированными из пользовательского поста с метабоксами. В качестве окончательного результата я хочу иметь карту с маркерами с названием поста, некоторым описанием и ссылкой на пост.

Я думаю, что я на полпути, но я столкнулся с ошибкой вроде

Uncaught ReferenceError: инвестицииData не определены

и я понятия не имею, что я сделал не так? Не могли бы вы мне помочь?

Мой код:

$args = array('post_type'=> 'investments'); $the_query = new WP_Query( $args );
        if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();

        $investmentsData[$row]['meta'] = get_post_meta( $post->ID, 'investments_location_details', true );
        $investmentsData[$row]['investment'] = [
          'id' => get_the_id(),
          'title' => get_the_title(),
        ];

          foreach ($investmentsData as $key => $value) {
            $investment = $value['tabs'];
            $meta = $value['meta'];
          }

            wp_localize_script('jquery-core', 'investmentsData', $investmentsData);
          ?>
          <div id="map"></div>

          <script type="text/javascript">
             var map = new google.maps.Map(document.getElementById('map'), {
                 zoom: 5,
                 center: new google.maps.LatLng(52.351168, 18.5801487),
                 mapTypeId: google.maps.MapTypeId.ROADMAP
             });
             var infowindow = new google.maps.InfoWindow();
             var marker, i;
             var j = investmentsData.length;
             function initMap() {
                 for (i = 0; i < j; i++) {
                     marker = new google.maps.Marker({
                         position: new google.maps.LatLng(investmentsData[i].lat, investmentsData[i].lng),
                         map: map
                     });

                     google.maps.event.addListener(marker, 'click', (function(marker, i) {
                         return function() {
                             infowindow.setContent(investmentsData[i].title);
                             infowindow.open(map, marker);
                         }
                     })(marker, i));
                 }
             };
         </script>

      <?php
        endwhile;
        endif;
        wp_reset_postdata();
        wp_reset_query();
      ?>

1 Ответ

0 голосов
/ 06 июля 2018

Попробуйте добавить приведенный ниже код и внесите изменения в переменную j.

var locations = <?php echo json_encode($investmentsData) ?>
var j = locations.length;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...