Удалить экранированные цитаты из постов Wordpress - PullRequest
0 голосов
/ 14 января 2010

В своем контенте я даю свои идентификаторы <h3> тегов ради прямой ссылки.

Вот как это выглядит в редакторе сообщений:

<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');, который великолепно ломает вещи.

Я серьезно подумываю о создании фильтра для удаления слешей, но, похоже, их не следовало добавлять с самого начала. Например, они не добавляются в изображения с идентификаторами, поэтому их нужно где-то добавлять. Это происходит как в визуальном, так и в HTML-режимах.

Любая помощь будет принята с благодарностью.

Ответы [ 5 ]

5 голосов
/ 02 сентября 2012

Относительно плагина SEO Smart links.

Это вызвано $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);
}
3 голосов
/ 20 декабря 2011

Для всех, кто сталкивался с этим, плагин SEO Smart Links можно исправить, изменив функцию SEOLinks_the_content_filter.

Заменить

$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 голосов
/ 11 августа 2010

Вы, вероятно, уже исправили это, но для тех, кто ищет в Google ответ на вопрос, чтобы удалить двойные экранированные кавычки в php, убедитесь, что текст сначала фильтруется через функцию полоски ($ data).

2 голосов
/ 30 мая 2010

Я заметил, что если вы снимите флажок «запрещать ссылки в тегах заголовков (h1, h2, h3, h4, h5, h6)». в настройках плагина SEO Smart Links удаляются обратные косые черты. Я разместил это на странице автора плагина, чтобы исправить его.

2 голосов
/ 14 января 2010

Я думаю, это может быть взаимодействие с плагином. Я только что создал простой тестовый пост на своем сайте WP, и он не избежал цитат Это было на WordPress 2.9.1.

...