同一页面上有多个短码实例

时间:2018-01-13 作者:geeky87

我正在构建一个谷歌地图短代码插件,我使用wp_localize_script 将变量传递给js脚本,如(lat、lng、zoom…)。但我有一个问题:当我在一个页面中使用这个短代码两次或两次以上时,只有第一个有效。

我知道要解决我的问题,我应该为每个短代码生成一个脚本,并使用唯一的变量名等。。

有人知道如何做到这一点吗??

1 个回复
SO网友:D. Dan

我将执行以下操作:

将具有唯一名称的短代码传递给它们

  • 在模板末尾加载google脚本(其中很可能有google地图)不会讨论如何将属性传递给shortcode,但代码应该如下所示:

    function map_shortcode($atts){
        //deal with $atts
        ?>
        <div id="map-<?php echo $unique_name ?>"></div>
        <script>
        function mapInit<?php echo $unique_name ?>() {
                    var fenway = {lat: <?php echo $lat; ?>,
                    lng: <?php echo $lng; ?>};
    
                    var map = new google.maps.Map(document.getElementById(\'map-<?php echo $unique_name ?>\'), {
                        center: fenway,
                        zoom: <?php echo $zoom; ?>
                    });
        }
        $(document).ready(function( $ ) {
        functionWhenUserScrollsToMap(){ // I hope you can figure it out how to implement this
            mapInit<?php echo $unique_name ?>();
        }
        } );
        </script><?php
    }
    
    重要的是:

    您只需加载一次google地图脚本

  • 结束

    相关推荐