2010-01-13 3 views
0

В моем содержании я даю свои теги 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> 

Это делает ссылки неработоспособными :(

Я пробовал много вещей, таких как удаление фильтра wptexturize от the_content, следя за тем, чтобы magic_quotes были выключены, и даже remove_filter('content_save_pre', 'wp_filter_post_kses');, который великолепно разрывает вещи.

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

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

ответ

2

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

+0

Именно это я и сделал. Не идеальное решение :( –

2

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

+0

Я должен был подумать об этом решении первой, но, кажется, что вы правы. Я проверил мои плагины, и плагин SEO Smart Links был виновником. Я сообщу автору плагина. Спасибо за напоминание! –

3

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

3

Для любого, кто сталкивается с этим, плагин 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

5

Что касается плагина 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); 
} 
+0

Это отлично сработало для меня!Однако не уверен в каких-либо побочных эффектах. – gbmhunter

Смежные вопросы