在前缀为_Content时插入了双引号

时间:2012-03-12 作者:Matt Chan

我正在尝试编写一个插件来显示RunKeeper Healthy button 但当我查看页面源代码时,我的输出有额外的空间和双引号。我试图用这个按钮通过内联JavaScript打开一个新窗口。

我尝试在单引号和双引号之间切换,并确保正确转义嵌套引号。正在尝试附加get_permalink() 断开RunKeeper共享URL的生成链接。链接本身的图像标记很好,但当我将鼠标悬停在上面时,我看到一个不完整的链接。

链接输出为:

<a href="javascript:void(window.open(\'http://runkeeper.com/share?healthyUrl=http://my_website/my_post_permalink/ " , \'\' , \'width=630,height=350\');">
但我所期望的是:

<a href="javascript:void(window.open(\'http://runkeeper.com/share?healthyUrl=http://my_website/my_post_permalink/\' , \'\' , \'width=630,height=350\');">
到目前为止,我的插件代码是这样的:

add_filter(\'the_content\', \'add_runkeeper_btn\' );

function add_runkeeper_btn($content) {
    $output = "";

    if (is_single()) {
        $output .= "<a href=\\"javascript:void(window.open(\'http://runkeeper.com/share?healthyUrl=";
        $output .= get_permalink();
        $output .= "\', \'\' , \'width=630,height=350\');\\">";
        $output .= "<img src=\\"http://runkeeper.com/static/kronos/images/HealthyButton.png\\" class=\\"healthyImage\\" alt=\\"RunKeeper Healthy Button\\" />";
        $output .= "</a>";
    }

    return $output . $content;
}
作为参考,这是RunKeeper博客文章的页面源中的内容。我正在尝试修改它,以便healthyUrl 查询参数引用帖子的永久链接。

<a href="javascript:var%20d=document,l=d.location;void(window.open(\'http://runkeeper.com/share?healthyUrl=\'%20+%20l.href,\'\',\'width=630,height=350\'));">
    <img src="http://runkeeper.com/static/kronos/images/HealthyButton.png" class="healthyImage" alt="RunKeeper Healthy Button">
</a>

2 个回复
最合适的回答,由SO网友:Matt Chan 整理而成

我通过将字符串连接切换为使用PHP的echo而不是字符串连接来修复此问题。我还注意到我的原始代码中缺少了一个括号(这不会影响将单引号转换为双引号的输出结果)。

我仍然不知道为什么即使我已经将RunKeeper博客文章中的参考代码拆分,我也会将一个单引号替换为一个双引号。

这是我的最后一个功能:

function add_runkeeper_btn($content) {
    if (is_single()) {
        echo \'<p><a href="javascript:void(window.open(\\\'http://runkeeper.com/share?healthyUrl=\';
        echo trim(get_permalink());
        echo \'\\\', \\\'\\\', \\\'width=630,height=350\\\'));">\';
        echo \'<img src="http://runkeeper.com/static/kronos/images/HealthyButton.png" class="healthyImage" alt="RunKeeper Healthy Button" />\';
        echo \'</a></p>\';
    }

    return $content;
}

SO网友:Brian Jared

您通过将双引号更改为单引号来修复它。:)

<a href="javascript:void(window.open(\'http://runkeeper.com/share?healthyUrl=http://my_website/my_post_permalink/ " , \'\' , \'width=630,height=350\');">
                                                                                                               ^^^^^
您碰巧通过使用“echo”语句进行重构来修复它:D

结束

相关推荐