创建Google地图短代码的属性中的奇怪代码

时间:2014-03-05 13:17:22

标签: wordpress shortcode

我正在创建一个输出javascript代码的短代码来创建自定义的Google地图,如下所示:

[map w="600" h="400" style="full" z="16" marker="yes" infowindow="<h2>Title</h2>" address="New York"]

以下是代码的一些摘录:

function gmap($atts) {

    $atts = shortcode_atts(array(   
        [...]
        'infowindow' => '',
        [...]
        'style' => ''       
    ), $atts);

    [...]

    //infowindow

    if($atts['infowindow'] != '') 
    {
        $thiscontent = htmlspecialchars_decode($atts['infowindow']);
        $returncode .= '
        var contentString = \'' . $thiscontent . '\';
        var infowindow = new google.maps.InfoWindow({
            content: contentString
        });
        ';
    }

    [...]

    return $returncode;
}

如果在“infowindow”中我只使用文本,一切都很好,但如果我使用标记,如<h2>Title</h2>我在代码中获得的是:

var contentString = '<br />
<h2>Title</h2>
<p>';

......有两个新行搞砸了js。

任何人都可以帮助我吗? 非常感谢!

1 个答案:

答案 0 :(得分:0)

看起来你已经被WordPress的自动段落格式搞砸了。

选项1:有时你可以通过切换到编辑器的html选项卡来解决这个问题,然后删除标记中的任何空格,但是下次编辑时也会出现分崩离析的趋势同一页/帖子。

选项2:在主题的functions.php中禁用wpautop:

remove_filter( 'the_content', 'wpautop' );

但是,这可能会使您网站上的内容搞砸。

选项3。使用另一个插件,在特定网页上打开或关闭wpautop:https://wordpress.org/plugins/toggle-wpautop/

选项4。添加更多短代码属性,然后通过PHP应用所需的html,这样您就不必处理这个了!