¿Wordpress agrega automáticamente "& nbsp;"?

12

No estoy seguro de si es WordPress o Tiny MCE lo que lo está haciendo. Pero al cambiar entre HTML y el editor visual, se agrega  y agrega uno adicional cada vez que cambio de un lado a otro. Ni siquiera tengo un salto de línea en el código, parece que de alguna manera está decidiendo dónde quiere colocarlos en función de las etiquetas en mi código html.

¿Qué está causando esto y cómo lo soluciono?

Ya he intentado esto en el archivo de funciones de plantilla:

//disable auto p
remove_filter ('the_content', 'wpautop');
remove_filter ('comment_text', 'wpautop');
// Remove auto formatting
remove_filter('the_content', 'wptexturize');
remove_filter('comment_text', 'wptexturize');
remove_filter('the_title', 'wptexturize');
Dave
fuente
2
En realidad, está haciendo esto automáticamente cuando cambias de pestaña, yo también lo noté y me pareció muy molesto. Sin embargo, no tengo ni idea de cómo solucionarlo ...
Joost de Valk
1
Utilizo el editor HTML casi exclusivamente, pegando código allí desde BBEdit. Parece hacerme esto cuando guardo en WP.
Goodbye Stack Exchange
Bueno, yo también tengo este problema. Cuando publico manualmente y hago clic en el botón Intro, agregará un párrafo para mí. Esto sucede después de que instalé tiny mce. ¿Qué quiere decir con esto de todos modos: Filtro tiny_mce_init, para anular las reglas de filtrado de contenido por defecto
1
Esto me está sucediendo en los títulos de publicaciones en el bucle. Parece indiscriminado (ocurre solo en algunos caracteres espaciales de algunas publicaciones).
Drewdavid el
Logré

Respuestas:

2

Todo lo que uso es remove_filter( 'the_content', 'wpautop' ); remove_filter( 'the_excerpt', 'wpautop' );y eso impide que Wordpress cree cualquier marcado adicional. ¿Estás copiando y pegando tu código desde un editor externo?

Matthew Xerri
fuente
44
No funcionó para mí. Sin utilizar MCE Tiny, justo en HTML cada "actualización" todavía agrega nuevos  s
Cristiano
3
Tampoco funciona para mí
sidonaldson
4

Descubrí que se insertan espacios que no se rompen cuando uso dos espacios después de un período. El editor parece interpretar el espacio extra como un intento de mi parte de usar espacios para formatear texto.

Si copio y pego mi artículo del editor de Wordpress en un editor de texto que admita la visualización hexadecimal (uso EditPad Pro), veo que el texto que pensé que es un punto seguido de dos espacios es en realidad texto seguido de un solo espacio, seguido del carácter unicode con el código hexadecimal A0, que es el carácter ESPACIO SIN INTERRUPCIONES Unicode .

Pude eliminar el espacio que no se rompe en los artículos existentes reemplazando el espacio seguido del carácter NO_BREAK SPACE por solo un espacio. En la mayoría de los editores de texto, debe poder hacer eso con buscar y reemplazar copiando los "dos espacios" en el cuadro de texto Buscar y escribiendo un solo espacio en el cuadro de texto Reemplazar.

Pude evitar el problema en el futuro escribiendo solo un espacio después de un período.

Eric J.
fuente
3

¿Qué está causando esto y cómo lo soluciono?

Cualquier contenido agregado o eliminado de su Contenido de publicación es causado por tiny_mce_init, que aplica las reglas de filtrado de contenido.

Las formas de prevenirlo son:

  1. Filtro tiny_mce_init, para anular las reglas predeterminadas de filtrado de contenido
  2. Deje de cambiar entre editores visuales y HTML . De Verdad; a menos que desee utilizar la opción n. ° 1 anterior, no cambie entre editores . WordPress está diseñado para usarse de manera que el contenido se ingrese usando el editor Visual o HTML , pero no ambos simultáneamente.

Ejemplo de uso para el tiny_mce_before_initfiltro en Codex. Otro ejemplo de configuración / personalización de TinyMCE en Codex aquí .

Chip Bennett
fuente
11
Estoy bastante seguro de que su respuesta número 2 es incorrecta. Eso o alguien "atornilló al perro" en la interfaz de usuario. Si el editor estaba destinado a usarse solo como Visual o HTML, ¿por qué las pestañas están ahí? ¿Por qué no solo tenerlo como una opción en la configuración para usarlo de una manera u otra? Además, las pestañas están allí de forma predeterminada ... no es una característica u opción avanzada del desarrollador que debe configurar. Estoy bastante seguro de que estaban destinados a que los usuarios puedan hacer clic entre ellos y que el problema real es que a veces no funcionan bien juntos. (especialmente en el caso del formato de espacio)
luckykind
1
@luckykind No, no estaban destinados a alternar entre ellos. Eso es solo un problema arquitectónico de TinyMCE . Y no es el único .
Kaiser
3
No puede decirme que una interfaz de usuario que ofrece pestañas para alternar entre HTML y edición visual no está pensada para usarse de esa manera. Es casi 2016 y el problema sigue ahí.
Eric J.
1
Creo que mi computadora no estaba destinada a encenderse, pero como tiene un botón de encendido, la encendimos, por lo que todos los problemas son culpa del usuario. El diseño y el código son impecables, obviamente.
AturSams
1

Estoy usando Wordpress para un blog hebreo.

Solución alternativa: copie el texto en un editor como sublime o notepad ++ y busque y reemplace los espacios con espacios normales. Puede copiar uno de ellos del texto.

Descargo de responsabilidad: esta no es una gran respuesta y más una solución, así que no dude en votar. Para mí, Wordpress está felizmente agregando nbsp en todas partes y sin rima ni razón. No estoy seguro de qué lo está causando. Está sucediendo mucho con el texto hebreo, mucho más que con cualquier texto en inglés.

AturSams
fuente
0

En caso de que alguien todavía se quede con esto en 2020. Tuvimos este problema después de migrar un montón de contenido a Wordpress. Adivina qué, todos hicieron lo de copiar y pegar y terminamos con demasiado contenido para poder arreglarlo manualmente. Implementé la función php a continuación y la agregué a functions.php y resolvió el problema por nosotros.

    function replace_content($content) {
        $content = htmlentities($content, null, 'utf-8');
        $content = str_replace(" ", " ", $content);
        $content = html_entity_decode($content);
    return $content;
    }
    add_filter('the_content','replace_content', 999999999)

El 999999 es solo para asegurarse de que este filtro se ejecutará en último lugar, en caso de que  se agreguen en algún punto intermedio.

Bruno
fuente
-1

En archivo css. Poner display: inline-flexa la p adentro the excerpt. Los espacios en blanco adicionales ya no molestan. funciona para mi

Victor Montes de Oca
fuente