2010-01-13 79 views
0

在我的内容中,为了直接链接,我给了我的<h3>标记ID。从Wordpress文章中删除逃脱的引号

这是它的外观在帖子编辑:

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

任何帮助将不胜感激。

回答

2

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

+0

这正是我最终做的。虽然不是理想的解决方案:( – 2010-05-31 23:04:48

2

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

+0

我应该想到这个解决方案的第一,但现在看来,你是正确的。我审核了我的插件,SEO Smart Links插件是罪魁祸首。我会通知插件作者。 感谢您的提醒! – 2010-01-15 17:05:52

3

您可能已经修复了这个问题,但对于那些搜索谷歌的答案来删除php中的双引号,请确保文本首先通过反斜杠($ data)函数过滤。

3

对于任何遇到此问题的人来说,可以通过修改SEOLinks_the_content_filter功能来修复SEO智能链接插件。

更换

$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

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); 
} 
+0

这对我来说非常合适!不知道有任何副作用。 – gbmhunter 2014-02-01 21:23:14