Contenido

Curiosidad en WordPress 2.8

16 Jun

+ 10

Creo que acabo de descubrir un bug, para mi un problemón, en WordPress 2.8. Se trata de la insercción de código mediante copia/pega en el editor visual de WordPress (TinyMCE).

Según las pruebas que he realizado, me he encontrado con que al intentar copiar este código:

<div class="cube">
    <div class="face top">
    </div>
    <div class="face left">
    </div>
    <div class="face right">
    </div>
</div>

Directamente desde UltraEdit (es el que uso en Windows, aunque supongo que usando TextMate o cualquier otro ocurrirá lo mismo). Obtengo este resultado:

<div>
 <div>
 </div>
 <div>
 </div>
 <div>
 </div>
</div>

Creo que he encontrado el problema en el fichero wp-includes/js/tinymce/wp-tinymce.js, sobre la línea 14-15. Pero aún no he tenido tiempo de solventarlo. Esta tarde le echaré un vistazo. ¿A alguien más le pasa?

Solución temporal

Por el momento he visto que podemos solucionarlo editando el fichero en cuestión (wp-includes/js/tinymce/wp-tinymce.js)

Buscamosen la línea 14-15 este código:

...if(c.getParam("paste_auto_cleanup_on_paste",true))...

Y reemplazamos el valor true por false para evitar que nos limpie estos parámetros.

...if(c.getParam("paste_auto_cleanup_on_paste",false))...

Esto puede deshabilitar todos los filtros aplicados al pegado de código y quizás con contenido de documentos Word sea necesario, lo mejor es hacer pruebas antes de dejarlo funcionando definitivamente.

  • Lo raro es que no se te pula los divs completamente, que ha sido la funcionalidad normal hasta ahora.

    De todos modos, si piensas que es un bug, abre un ticket en el trac para que venga arreglado «de fábrica» para la 2.8.1 😉

  • A mi lo que me ha ocurrido, es que usando el editor de código integrado en el CMS al intentar guardar pierdo los fragmentos del código. Y la culpa creo que es de la funcionalidad para el resaltado, que tarda demasiado.

  • @Orlando: perdón, quise decir: «los fragmentos inferiores del código»

  • I think, you mean the wp-tinymce.js, not .php, or?

  • @Frank: Ops! It is true, that failure. Thank you 😀

  • Andrés, no se puede implementar la desactivación del filtro desde fuera del wp-includes? es decir mediante el archivo funtions.php? porque cuando haya actualizar WP, este arreglito no habría valido la pena.

    Recuerdo que había un pequeño fragmeto de código que hacía desactivar un filtro en el editor y ese funcionaba insertandolo desde funtions.php

    Gracias por el post 😉

  • Ja! El mismo pedazo de código quise pegar ayer en un post en mi blog, y tuve el mismo problema, por lo que terminé omitiéndolo. ¡Gracias por encontrar la solución!

  • Por casualidad, insertando algo dentro de los divs «TOP», «LEFT» y «RIGHT», te da el mismo resultado?…Probablemente los filtre debido a la falta de contenido dentro de esas div’s…

    Saludos…

  • @jeroguidi: Sería lo ideal, pero no me ha dado tiempo a mirarlo a fondo. Esta tarde-noche lo revisaré.
    @ElPerro: No lo he probado, esta tarde lo miraré.

    Saludos

  • aNieto2k, ciertamente el motor de conversión javascript de WP debe evolucionar un poco más. Al intentar eliminar el resíduo que dejan editores como Word, el script arrasa con todo lo que le «huela» a etiqueta. Y tal parece que se tornó más recio en la nueva versión.

    Personalmente siempre uso un textarea «pelado» en mi editor debido a esta causa. En el editor visual debes colocar el código (vista html) y tratar de no volver al Wysiwyg porque en ese paso es que WP da el tiro y lo arruina todo. Es decir, mientras se guarde en vista html (y luego ni soñar en hacer clic en «visual» está todo «bien».

    Sospecho que no hay un remedio fijo para este mal, ya que textos sacados programas como Word y páginas web siempre traerán código consigo, a la vez que cada uno de los que sí necesitamos introducir código personalizado en nuestros posts tenemos necesidades distintas.

    Entonces mi sugerencia es simple: Si gustan de introducir html en los posts frecuentemente, desactiven el editor visual y comiencen a editar «a capella». De todas formas WP posee un sistema de previsualización muy eficaz, además de la posibilidad de agregar nuevos tags a la botonera superior mediante el filtrado de funciones sin necesidad de tocar los archivos del núcleo.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.