我正在尝试使用gMap 来自Github的插件,而不是普通的iframe。为此,我必须在jQuery和所有其他脚本加载后,在结束body标记之前,为每个短代码回显一个自定义内联脚本。
以下短代码可以工作,但它只添加一次内联脚本,而不是针对每个短代码。当我添加三个[映射]短代码时,它应该为每个og添加内联脚本短代码,三个内联脚本,到页脚。但它只添加了一个脚本。这是最后一个短代码中的一个。
class map_class
{
protected static $var = \'\';
public static function map_callback($atts)
{
extract(shortcode_atts(array(
\'address\' => \'Main Street, New York City, United States\',
\'zoom\' => \'14\'
), $atts));
$id= rand();
$script = \'<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>\';
$script .= \'<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#googlemap\' . $id . \'").gMap({
address: "\' . $address . \'",
zoom: \' . $zoom . \'
});
});
</script>\';
self::$var = $script;
add_action( \'wp_footer\', array ( __CLASS__, \'footer\' ), 20 );
return \'<div id="googlemap\' . $id . \'" class="googlemap" style="height: \' . $height . \'"></div>\';
}
public static function footer()
{
echo self::$var;
}
}
add_shortcode( \'map\', array ( \'map_class\', \'map_callback\' ) );
$script保存所有三个内联脚本,但当我尝试在add\\u操作中调用$script时,如下所示:
add_action( \'wp_footer\', array ( __CLASS__, $script ), 20 );
。。我得到以下错误:
“第一个参数应为有效回调”
我很感激这里的任何帮助。