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>

これにより、リンクが機能しなくなります:(

私は、wptexturizeフィルターをthe_contentから削除したり、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

これに遭遇した人は誰でも、SEOLinks_the_content_filter関数を変更することでSEOSmartLinksプラグインを修正できます。

交換

$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 に答える
3

おそらくこれはすでに修正されていますが、PHPで二重引用符を削除するための答えをGoogleで検索する場合は、最初にテキストがstripslashes($ data)関数でフィルタリングされていることを確認してください。

于 2010-08-11T13:10:53.233 に答える
2

これはプラグインの相互作用かもしれないと思います。WordPress Webサイトに簡単なテスト投稿を作成しましたが、引用符を逃れませんでした。これはWordPress2.9.1にありました。

于 2010-01-13T22:33:21.750 に答える
2

「見出しタグ(h1、h2、h3、h4、h5、h6)のリンクを防ぐ」のチェックを外すと気づきました。SEO Smart Linksプラグインの設定では、バックスラッシュが削除されています。うまくいけば修正されるように、プラグインの作者のページにこれを投稿しました。

于 2010-05-30T16:02:59.210 に答える