могу ли я добавить пользовательский формат в параметр формат на текстовой панели?


В текстовом редакторе, где вы можете задать заголовки и другие настройки, можно ли добавить свои собственные стили для использования клиентами? и даже удалить ненужные?

Author: Mild Fuzz, 2010-11-10

2 answers

"Классический" редактор TinyMCE имеет два раскрывающихся списка: formatselect для стилей абзацев и styleselect для стилей символов , которые также могут содержать стили абзацев, чтобы сделать его более запутанным. Конфигурация в WordPress по умолчанию показывает только раскрывающийся список формат. Если вы примените пользовательскую таблицу стилей к редактору, TinyMCE может использовать ее для выбора имен классов и добавления их в раскрывающийся список стиль, но это не всегда срабатывало для я.

Начиная с версии 3.0 вы можете звонить add_editor_style() в вашем functions.php, чтобы добавить таблицу стилей в редактор. По умолчанию это editor-style.css в вашем каталоге тем. До версии 3.0 вам нужно подключиться к фильтру mce_css, чтобы добавить URL-адрес в таблицу стилей вашего редактора. Это приведет к значению конфигурации content_css TinyMCE.

Чтобы добавить раскрывающийся список стиль , параметр styleselect должен появиться в одном из массивов конфигурации панели кнопок (theme_advanced_buttons[1-4] в TinyMCE, отфильтрованный по mce_buttons_[1-4] в WordPress). Список форматов блоков управляется опцией theme_advanced_blockformats TinyMCE, которую вы можете добавить в массив управления в tiny_mce_before_init фильтр. Если вы хотите настроить имена раскрывающегося списка стиль (а не только имена ваших классов CSS), посмотрите на параметр theme_advanced_styles. Вы также можете использовать более продвинутые style_formats опция, которая дает вам больше гибкости при определении стилей.

Соответствующий PHP-код со всеми крючками и по умолчанию конфигурация находится в wp-admin/includes/post.php, в действии wp_tiny_mce(). В совокупности ваша настройка может выглядеть следующим образом:

add_action( 'after_setup_theme', 'wpse3882_after_setup_theme' );
function wpse3882_after_setup_theme()
{
    add_editor_style();
}

add_filter('mce_buttons_2', 'wpse3882_mce_buttons_2');
function wpse3882_mce_buttons_2($buttons)
{
    array_unshift($buttons, 'styleselect');
    return $buttons;
}

add_filter('tiny_mce_before_init', 'wpse3882_tiny_mce_before_init');
function wpse3882_tiny_mce_before_init($settings)
{
    $settings['theme_advanced_blockformats'] = 'p,h1,h2,h3,h4';

    // From http://tinymce.moxiecode.com/examples/example_24.php
    $style_formats = array(
        array('title' => 'Bold text', 'inline' => 'b'),
        array('title' => 'Red text', 'inline' => 'span', 'styles' => array('color' => '#ff0000')),
        array('title' => 'Red header', 'block' => 'h1', 'styles' => array('color' => '#ff0000')),
        array('title' => 'Example 1', 'inline' => 'span', 'classes' => 'example1'),
        array('title' => 'Example 2', 'inline' => 'span', 'classes' => 'example2'),
        array('title' => 'Table styles'),
        array('title' => 'Table row 1', 'selector' => 'tr', 'classes' => 'tablerow1'),
    );
    // Before 3.1 you needed a special trick to send this array to the configuration.
    // See this post history for previous versions.
    $settings['style_formats'] = json_encode( $style_formats );

    return $settings;
}
 18
Author: Jan Fabry, 2011-05-03 06:11:06

Согласно здесь Раскрывающийся список формата TinyMCE больше не показывает предварительный просмотр стилей

Кара была права, вам нужно отменить настройки стилей по умолчанию, чтобы увидеть новые стили...

unset($init['preview_styles']);

return $settings;
 0
Author: user2136473, 2017-04-13 12:37:38