0

<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 模式中。

4

5 回答 5

5

关于 SEO 智能链接插件。

它是由$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);
}
于 2012-09-01T20:21:42.490 回答
3

您可能已经解决了这个问题,但是对于那些在 Google 中搜索以在 PHP 中删除双转义引号的答案的人来说,请确保首先通过stripslashes($data)函数过滤文本。

于 2010-08-11T13:10:53.233 回答
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上找到的修改过的修复程序。

于 2011-12-20T07:53:11.523 回答
2

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

于 2010-05-30T16:02:59.210 回答
2

我想这可能是一个插件交互。我刚刚在我的 WordPress 网站上创建了一个简单的测试帖子,它没有转义引号。这是在 WordPress 2.9.1 上。

于 2010-01-13T22:33:21.750 回答