从Wordpress帖子中删除转义的引号

时间:2010-01-13 22:28:18

标签: wordpress escaping wordpress-plugin quotes double-quotes

在我的内容中,为了直接链接,我将<h3>标记为id。

这是它在帖子编辑器中的样子:

<h3 id="h3-title">H3 Title</h3>

这样我就可以直接链接到它:

<a href="http://example.com/page#h3-title">H3 Title</a>

但是,双引号会以某种方式被转义,帖子页面上的html输出如下所示:

<h3 id="\"h3-title"\">H3 Title</h3>

这使得链接不起作用:(

我尝试过很多东西,例如从the_content中删除wptexturize过滤器,确保magic_quotes已关闭,甚至remove_filter('content_save_pre', 'wp_filter_post_kses');会破坏事物。

我正在认真考虑创建一个过滤器来删除斜杠,但似乎它们不应该被添加到开头。例如,它们不会添加到带有id的图像中,因此必须将它们添加到某处。这在视觉和html模式下都会发生。

非常感谢任何帮助。

5 个答案:

答案 0 :(得分:5)

关于SEO Smart链接插件。

由以下声明中的$text = stripslashes($text);引起:

if ($options['excludeheading'] == "on") {
    //Here insert special characters
    $text = preg_replace('%(<h.*?>)(.*?)(</h.*?>)%sie', "'\\1'.removespecialchars('\\2').'\\3'", $text);
    $text = stripslashes($text);
}

答案 1 :(得分:3)

你可能已经解决了这个问题,但对于那些搜索谷歌寻找删除php中双重转义引号的答案的人来说,请确保首先通过stripslashes($ data)函数首先过滤文本。

答案 2 :(得分:3)

对于遇到此问题的任何人,可以通过修改SEOLinks_the_content_filter函数来修复SEO Smart Links插件。

替换

$result=$this->SEOLinks_process_text($text, 0);

使用

$text = stripslashes($text);
$result=$this->SEOLinks_process_text($text, 0);
$result = stripslashes($result);

我不是php专家,不知道这是否是最佳解决方案,但它对我有用。这是http://www.prelovac.com/vladimir/forum/plugins/seo-smart-links-fix-for-you-seo-smart-links-plugin

上修改后的修补程序

答案 3 :(得分:2)

我认为这可能是一个插件互动。我刚刚在WP网站上创建了一个简单的测试帖子,它没有逃脱引号。这是在WordPress 2.9.1上。

答案 4 :(得分:2)

我注意到如果你取消选中“阻止标题标签中的链接(h1,h2,h3,h4,h5,h6)”。在SEO Smart Links插件的设置中,反斜杠被删除。我已经在插件作者的页面上发布了这个,希望能够修复。