Crear una instancia de wp_editor con botones tinyMCE personalizados

Pregunta:

¿Hay alguna forma de definir wp_editor() con botones tinyMCE personalizados?

He notado que la referencia de la función wp_editor menciona que uno de los argumentos de $settings puede ser tinymce (array) (optional) Load TinyMCE, can be used to pass settings directly to TinyMCE using an array() .

Mi página usa varias instancias diferentes y me gustaría agregar ciertos botones a ciertas instancias.

Por ejemplo,

Instance #1 : Standard buttons
Instance #2 : bold, italic, ul + (custom) pH, temp
Instance #3 : bold, italic, ul + (custom) min_size, max_size

¿Alguien sabe cómo haría esto si ya he registrado los botones como complementos de tinyMCE según este tutorial ?


EDITAR

Aquí está el código que estoy usando en mi archivo de complemento para que esto funcione:

function add_SF_buttons() {
    if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') )
        return;
    if ( get_user_option('rich_editing') == 'true') {
        add_filter('mce_external_plugins', 'add_SF_buttons_plugins');
    }
}

function add_SF_buttons_plugins($plugin_array) {
    $plugin_array['pH'] = $this->plugin_url . '/js/tinymce_buttons/pH.js';
    $plugin_array['pH_min'] = $this->plugin_url . '/js/tinymce_buttons/pH_min.js';
    $plugin_array['pH_max'] = $this->plugin_url . '/js/tinymce_buttons/pH_max.js';
    return $plugin_array;
}

if (isset($SpeciesProfile)) {
    add_action( 'init' , array (&$SpeciesProfile, 'register_species' ));
    add_action( 'init' , array( &$SpeciesProfile, 'register_species_taxonomies' ));

    add_action( 'init', array (&$SpeciesProfile, 'add_SF_buttons' ));
}

<?php wp_editor( $distribution, 'distribution', array( 'theme_advanced_buttons1' => 'bold, italic, ul, pH, pH_min', "media_buttons" => false, "textarea_rows" => 8, "tabindex" => 4 ) ); ?>

Desafortunadamente, esto no funciona: el editor anterior simplemente muestra los mismos botones que cualquier otra instancia en la página.


Gracias por adelantado,

Respuesta:

Prácticamente lo tenías, según la descripción.

Esto es lo que podría estar buscando para las instancias 2 y 3 (por ejemplo, 1 puede dejar la configuración vacía para obtener el conjunto de botones predeterminado):

Instancia 2:

wp_editor(
    $distribution,
    'distribution',
    array(
      'media_buttons' => false,
      'textarea_rows' => 8,
      'tabindex' => 4,
      'tinymce' => array(
        'theme_advanced_buttons1' => 'bold, italic, ul, pH, temp',
      ),
    )
);

Instancia 3 (que muestra cada una de las 4 filas que puede configurar para TinyMCE):

wp_editor(
    $distribution,
    'distribution',
    array(
      'media_buttons' => false,
      'textarea_rows' => 8,
      'tabindex' => 4,
      'tinymce' => array(
        'theme_advanced_buttons1' => 'bold, italic, ul, min_size, max_size',
        'theme_advanced_buttons2' => '',
        'theme_advanced_buttons3' => '',
        'theme_advanced_buttons4' => '',
      ),
    )
);

Le recomiendo que consulte el archivo wp-includes/class-wp-editor.php (específicamente la función editor_settings en la línea 126) para comprender cómo WP analiza la configuración que usa dentro de la función wp_editor (). Además, consulte esta página para comprender más sobre la funcionalidad de TinyMCE y sus opciones de inicio (que no creo que WP sea completamente compatible).

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım