在我的内容中,为了直接链接,我将<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模式下都会发生。
非常感谢任何帮助。
答案 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插件的设置中,反斜杠被删除。我已经在插件作者的页面上发布了这个,希望能够修复。