Editando entradas en formato texto en WordPress – Más a fondo.

Según lo que indica la documentación de wordpress.com, hay un grupo de etiquetas html permitidas en el editor “html / texto” que son:

address, a, abbr, acronym, area, article, aside, b, big, blockquote, br, caption, cite, class, code, col, del, details, dd, div, dl, dt, em, figure, figcaption, footer, font, h1, h2, h3, h4, h5, h6, header, hgroup, hr, i, img, ins, kbd, li, map, ol, p, pre, q, s, section, small, span, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, var

Aún así, el CRM WordPress.* realiza una serie de limpiezas por medio de filtros, sobre el texto introducido; algunos de estos filtros pueden ser “tuneados” para modificar el comportamiento y así, el resultado final (por supuesto, solo en WordPress.org, ya que en WordPress.com, no tenemos acceso a los fuentes o a la configuración). El archivo /wp-includes/class-wp-editor.php es el responsable del editor de texto y en él, podemos cambiar algunos parámetros. Este módulo, hace uso de una versión propia del conocido editor “Open Source”, TinyMCE

Cambiando los filtros de TinyMCE

Si se quiere “tunear” la apariencia (los botones) o la presentación general mediante CSS, o se quiere cambiar la función de limpieza de estilos, “spans”, etc. se puede modificar el arreglo interno de configuración, mediante el uso de “tiny_mce_before_init”.

Si buscas información sobre cómo modificar aspectos del editor TinyMCE, te sugiero este post (en inglés): wordpress tinymce editor

Más abajo verás la configuración por defecto, estas son mis preferencias:

function my_format_TinyMCE( $in ) {
$in[‘remove_linebreaks’] = false;
$in[‘gecko_spellcheck’] = false;
$in[‘keep_styles’] = true;
$in[‘accessibility_focus’] = true;
$in[‘tabfocus_elements’] = ‘major-publishing-actions’;
$in[‘media_strict’] = false;
$in[‘paste_remove_styles’] = false;
$in[‘paste_remove_spans’] = false;
$in[‘paste_strip_class_attributes’] = ‘none’;
$in[‘paste_text_use_dialog’] = true;
$in[‘wpeditimage_disable_captions’] = true;
$in[‘plugins’] = ‘tabfocus,paste,media,fullscreen,wordpress,wpeditimage,wpgallery,wplink,wpdialogs,wpfullscreen’;
$in[‘content_css’] = get_template_directory_uri() . “/editor-style.css”;
$in[‘wpautop’] = true;
$in[‘apply_source_formatting’] = false;
$in[‘block_formats’] = “Paragraph=p; Heading 3=h3; Heading 4=h4″;
$in[‘toolbar1’] = ‘bold,italic,strikethrough,bullist,numlist,blockquote,hr,alignleft,aligncenter,alignright,link,unlink,wp_more,spellchecker,wp_fullscreen,wp_adv ‘;
$in[‘toolbar2’] = ‘formatselect,underline,alignjustify,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help ‘;
$in[‘toolbar3’] = ”;
$in[‘toolbar4’] = ”;
return $in;
}

add_filter( ‘tiny_mce_before_init’, ‘my_format_TinyMCE’ );

Si vemos el archivo /wp-includes/class-wp-editor.php, encontraremos una declaración:


$set = wp_parse_args( $settings, array(

y es aquí donde podemos hacer algunos cambios como el de

'wpautop' => false,

con el que podemos cambiar el comportamiento del filtro que añade automáticamente las etiquetas “<p>” y “</p>”

Por defecto, el código de esta declaración es:


$set = wp_parse_args( $settings, array(
'wpautop' => true,
'media_buttons' => true,
'default_editor' => '',
'drag_drop_upload' => false,
'textarea_name' => $editor_id,
'textarea_rows' => 20,
'tabindex' => '',
'tabfocus_elements' => ':prev,:next',
'editor_css' => '',
'editor_class' => '',
'teeny' => false,
'dfw' => false,
'_content_editor_dfw' => false,
'tinymce' => true,
'quicktags' => true
) );

self::$this_tinymce = ( $set[‘tinymce’] && user_can_richedit() );

Esta entrada fue publicada en Divulgacion, WordPress y etiquetada , , . Guarda el enlace permanente.

2 respuestas a Editando entradas en formato texto en WordPress – Más a fondo.

  1. Miguel dijo:

    Esto empieza a ser muy interesante

Deja un comentario