Actualizar el editor visual de WP, TinyMCE

5 octubre 2006 at 19:01

El editor visual de WordPress tiene muchos fallos y carencias (entre otras cosas, no permite insertar cómodamente objetos como videos de Youtube y similares), y muchos optan por usar servicios externos, como WriteToMyBlog o Performancing. Lo que muchos no saben es que el editor de WP es de por sí una herramienta externa: TinyMCE… ¡que es justo el motor que usa WriteToMyBlog!

El problema está en que, incomprensiblemente, la versión de TinyMCE que se incluye en el pack de WP es extremadamente antigua, así que actualizando el TinyMCE se resuelven muchas de esas pegas que suelen criticarse al editor visual de WordPress. Actualizarlo es extremadamente simple:

Descarga la última versión de TinyMCE desde el área de descargas de su web. Recomiendo que también descargues el compresor PHP, porque acelera bastante la carga del editor (está en la misma zona de descargas). Si quieres, también hay un pack para traducirlo al castellano.

Borra los archivos de la versión que incluye WP. Se encuentran en /wp-includes/js/tinymce

Sube todos los archivos de TinyMCE en la misma ruta. Sube también los de la traducción (si quieres) y los del compresor PHP.

Ahora hay que editar el archivo /wp-admin/admin-header.php

Busca esta línea:

<script type="text/javascript" src="../wp-includes/js/tinymce/tiny_mce_gzip.php?ver=20051211"></script>

Sustituye esa línea con este texto:

<script language="javascript" type="text/javascript" src="../wp-includes/js/tinymce/tiny_mce_gzip.php"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode : "exact",
elements : "content,excerpt",
theme : "advanced",
plugins : "table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,zoom,flash,searchreplace,print,contextmenu",
theme_advanced_buttons1_add_before : "save,separator",
theme_advanced_buttons1_add : "fontselect,fontsizeselect",
theme_advanced_buttons2_add : "separator,insertdate,inserttime,preview,zoom,separator,forecolor,backcolor",
theme_advanced_buttons2_add_before: "cut,copy,paste,separator,search,replace,separator",
theme_advanced_buttons3_add_before : "tablecontrols,separator",
theme_advanced_buttons3_add : "emotions,iespell,flash,advhr,separator,print",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_path_location : "bottom",
plugin_insertdate_dateFormat : "%Y-%m-%d",
plugin_insertdate_timeFormat : "%H:%M:%S",
extended_valid_elements : "a[name|href|target|title|class|id|onclick],img[class|id|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|id|width|size|noshade],font[face|size|color|style],span[class|id|align|style],code[class|lang|style|title],object[width|height],param[name|value],embed[src|type|wmode|width|height]",
external_link_list_url : "example_data/example_link_list.js",
external_image_list_url : "example_data/example_image_list.js",
language : "es",
flash_external_list_url : "example_data/example_flash_list.js" });
</script>

En la opción elements, incluye las ID de los textarea en los que quieras usar el editor visual (en el ejemplo se usa para "Contenido" y para el "Extracto opcional", evitando que se active por defecto en los campos personalizados).

El código anterior está pensado para usar el compresor PHP. Si optas por no usarlo, cambia tiny_mce_gzip.php por tiny_mce.js en la primera línea.

Si no quieres traducirlo, elimina la línea language : "es", de esas opciones. En ese caso, obviamente, no subas los archivos del pack de traducción, que subirlo pa na es tontería.

Y listo, sólo tienes que recargar el editor de posts de WP para ver la nueva versión de TinyMCE en funcionamiento. Si no necesitas tantas opciones y botones, hay otras configuraciones posibles (al final de la página), con interfaces más sencillas.

Y todo esto viene a cuento por este post de Manuel Almeida, que me hizo pensar que era mejor solución actualizar el TinyMCE de WP, que usar una herramienta externa tipo WriteToMyBlog, que usa TinyMCE para funcionar… Y ya de paso a ver si le ahorro de hacer más pruebas a Cyberfrancis.

Espero que os sea útil.

EDIT 20-10-2006: Gracias al aviso de guardafaro me he dado cuenta de una grave errata en la cadena a sustituir que hacía totalmente imposible actualizar el editor siguiendo los pasos… jur jur Embarassed. Lamento las molestias, ya está arreglado.