Pregunta

En mi contenido le estoy dando a mi <h3> ID de etiquetas en aras de la vinculación directa.

Así es como se ve en el editor de la publicación:

<h3 id="h3-title">H3 Title</h3>

Para que pueda vincularlo directamente así:

<a href="http://example.com/page#h3-title">H3 Title</a>

Sin embargo, las cotizaciones dobles se están escapando de alguna manera, con la salida HTML en la página de publicación como esto:

<h3 id="\"h3-title"\">H3 Title</h3>

Esto hace que los enlaces no funcionen :(

He probado numerosas cosas, como eliminar el filtro WPTEXTURize de The_Content, asegurándose de que Magic_Quotes estuviera apagado e incluso remove_filter('content_save_pre', 'wp_filter_post_kses'); que rompe las cosas magníficamente.

Estoy considerando seriamente crear un filtro para eliminar las cortes, pero parece que no deberían haber sido agregados para empezar. No se agregan a las imágenes con ID, por ejemplo, por lo que deben agregarse en alguna parte. Esto sucede tanto en los modos visuales como en HTML.

Cualquier ayuda sería muy apreciada.

¿Fue útil?

Solución

He notado que si desactiva el "Evite la vinculación en las etiquetas de encabezado (H1, H2, H3, H4, H5, H6)". En la configuración del complemento SEO Smart Links, se eliminan las barras de la espalda. He publicado esto en la página del autor del complemento para que se arregle.

Otros consejos

Con respecto al complemento SEO Smart Links.

Es causado por $text = stripslashes($text); En la siguiente declaración:

if ($options['excludeheading'] == "on") {
    //Here insert special characters
    $text = preg_replace('%(<h.*?>)(.*?)(</h.*?>)%sie', "'\\1'.removespecialchars('\\2').'\\3'", $text);
    $text = stripslashes($text);
}

Probablemente ya haya solucionado esto, pero para aquellos que buscan en Google la respuesta para eliminar las cotizaciones de doble escapada en PHP, asegúrese de que el texto se filtre primero a través de la función StripsLashes ($ Data) primero.

Para cualquier persona que se encuentre con esto, el complemento SEO Smart Links se puede solucionar modificando la función SEOLINKS_The_Content_Filter.

Reemplazar

$result=$this->SEOLinks_process_text($text, 0);

Con

$text = stripslashes($text);
$result=$this->SEOLinks_process_text($text, 0);
$result = stripslashes($result);

No soy un experto en PHP, no tengo idea de si esta es la solución óptima, pero funcionó para mí. Esta fue una solución modificada encontrada en http://www.prelovac.com/vladimir/forum/plugins/seo-smart-links-fix-for-you-seo-smart-links-plugin

Creo que esta puede ser una interacción de complemento. Acabo de crear una publicación de prueba simple en mi sitio web de WP, y no escapó de las citas. Esto fue en WordPress 2.9.1.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top