¿Cómo personalizar el editor de wordpress predeterminado?

5 minutos de lectura

Es bueno escuchar que Sony (wordpress3.3) tiene la nueva API del editor wp_editor() eso nos da la capacidad de usar múltiples instancias del editor en nuestros campos personalizados con facilidad.

Pero necesitaba personalizar el editor predeterminado (para el contenido principal) y no sabía cómo hacerlo con esta función. Necesitaba personalizar el editor para mi nuevo tipo de publicación personalizada llamada pancarta para lo cual necesitaba cambiar el tamaño del editor con menos botones. Sé que podría hacerlo simplemente usando un campo personalizado, pero por alguna razón quiero usar el contenido para la descripción del banner.

Gracias de antemano.

¡Estaba buscando una solución para colocar metabox personalizado sobre el editor predeterminado y encontré la solución a mi pregunta anterior (cómo personalizar el editor predeterminado con wp_editor)!

La solución fue desactivar primero el editor predeterminado. Luego cree otro metabox para colocar el contenido y luego use wp_editor para crear una nueva instancia, simple, ¿no?

add_action( 'add_meta_boxes', 'page_meta_boxes' );
public function page_meta_boxes()
{

    global $_wp_post_type_features;
            //ive defined my other metaboxes first with higher priority
    add_meta_box(
        $id     =   'page_heading_meta_box',
        $title  =   __('Heading'),
        $callback   = array(&$this,'render_page_heading_metabox'),
        $post_type="page",
        $context="normal",
        $priority   =   'core'
        );
    add_meta_box(
        $id     =   'page_description_meta_box',
        $title  =   __('Description'),
        $callback   = array(&$this,'render_page_description_metabox'),
        $post_type="page",
        $context="normal",
        $priority   =   'core'
        );
    //check for the required post type page or post or <custom post type(here article)  
    if (isset($_wp_post_type_features['article']['editor']) && $_wp_post_type_features['post']['editor']) {
        unset($_wp_post_type_features['article']['editor']);
        add_meta_box(
            'wsp_content',
            __('Content'),
            array(&$this,'content_editor_meta_box'),
            'article', 'normal', 'core'
        );
    }
    if (isset($_wp_post_type_features['page']['editor']) && $_wp_post_type_features['page']['editor']) {
        unset($_wp_post_type_features['page']['editor']);
        add_meta_box(
            'wsp_content',
            __('Content'),
            array(&$this,'content_editor_meta_box'),
            'page', 'normal', 'low'
        );
    }
    }

De esta forma hemos dado de alta un nuevo metabox llamado content. Ahora es el momento de colocar el editor.

        function content_editor_meta_box($post)
    {
        $settings = array(
            #media_buttons
            #(boolean) (optional) Whether to display media insert/upload buttons
            #Default: true
            'media_buttons' => true,

            #textarea_name
            #(string) (optional) The name assigned to the generated textarea and passed parameter when the form is submitted. (may include [] to pass data as array)
            #Default: $editor_id
            'textarea_name'=>'content',

            #textarea_rows
            #(integer) (optional) The number of rows to display for the textarea
            #Default: get_option('default_post_edit_rows', 10)

            #tabindex
            #(integer) (optional) The tabindex value used for the form field
            #Default: None
            'tabindex' => '4'

            #editor_css
            #(string) (optional) Additional CSS styling applied for both visual and HTML editors buttons, needs to #include <style> tags, can use "scoped"
            #Default: None

            #editor_class
            #(string) (optional) Any extra CSS Classes to append to the Editor textarea
            #Default:

            #teeny
            #(boolean) (optional) Whether to output the minimal editor configuration used in PressThis
            #Default: false

            #dfw
            #(boolean) (optional) Whether to replace the default fullscreen editor with DFW (needs specific DOM elements #and css)
            #Default: false

            #tinymce
            #(array) (optional) Load TinyMCE, can be used to pass settings directly to TinyMCE using an array()
            #Default: true

            #quicktags
            #(array) (optional) Load Quicktags, can be used to pass settings directly to Quicktags using an array()
            #Default: true
        );
        wp_editor($post->post_content,'content');

    }

¡Ahora puedes personalizar completamente tu editor! Asi es como luce ahora. Espero que sea útil para usted también!
ingrese la descripción de la imagen aquí

avatar de usuario
cristian

Puede personalizar el editor (TinyMCE) con un filtro, como se muestra aquí. Fragmento de código adjunto:

function myformatTinyMCE($in)
{
 $in['plugins']='inlinepopups,tabfocus,paste,media,fullscreen,wordpress,wpeditimage,wpgallery,wplink,wpdialogs,wpfullscreen';
 $in['wpautop']=true;
 $in['apply_source_formatting']=false;
 $in['theme_advanced_buttons1']='formatselect,forecolor,|,bold,italic,underline,|,bullist,numlist,blockquote,|,justifyleft,justifycenter,justifyright,justifyfull,|,link,unlink,|,wp_fullscreen,wp_adv';
 $in['theme_advanced_buttons2']='pastetext,pasteword,removeformat,|,charmap,|,outdent,indent,|,undo,redo';
 $in['theme_advanced_buttons3']='';
 $in['theme_advanced_buttons4']='';
 return $in;
}
add_filter('tiny_mce_before_init', 'myformatTinyMCE' );

Este código debe colocarse en su tema functions.php expediente. Es posible que desee print_r( $in ) para ver todas las claves que se pasan (he omitido algunas de ellas aquí porque no creo que la página a la que vinculé arriba esté actualizada). Puede navegar por la fuente más reciente aquí. Encontrarás los filtros que buscas en función public static function editor_settings($editor_id, $set)

Además, es posible que también desee asegurarse de que esto solo suceda para su baner post_type, ya que esto afectará a todas las instancias del editor que se creen.

  • Intenté esto pero no encontré ninguna opción como cambiar el tamaño del editor (es decir, textarea_rows), hacerlo pequeño, etc.

    – Dipesh KC

    17 de enero de 2012 a las 5:47

  • Se vinculó a la referencia de wp_editor en su pregunta inicial; puede modificar estas opciones a través de la $settings parámetro con teclas textarea_rows y teeny

    – cristian

    18 de enero de 2012 a las 4:29


Puedes probar esto Editor que puede agregar campos adicionales también es fácil de usar e instalar

  • Era un poco pesado, con mesas extra, eso no me gustó, de todos modos gracias por la sugerencia.

    – Dipesh KC

    17 de enero de 2012 a las 5:40

¿Ha sido útil esta solución?