industrialthemes
  • 0
Новичок

Есть ли способ добавить еще одну строку в переключатель кухонной раковины tinyMCE?

  • 0

Кнопка-переключатель «кухонная раковина» tinyMCE показывает/скрывает ряд кнопок. Я успешно добавил свой ряд кнопок шорткода в редактор tinyMCE, но мне было интересно, есть ли способ сделать так, чтобы мой ряд отображался только при нажатии кнопки кухонной раковины. Я не хочу добавлять кнопки непосредственно в ряд кухонной раковины, потому что у меня много кнопок, которым нужен отдельный ряд. Итак, могу ли я сделать так, чтобы кнопка кухонной раковины показывала две строки вместо одной? Или есть какой-то модификатор, когда я добавляю свою строку, чтобы указать, что она должна переключаться при нажатии кнопки кухонной раковины?

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

    // add shortcode buttons to the tinyMCE editor row 3
function add_button_3() {
   if ( current_user_can('edit_posts') &&  current_user_can('edit_pages') )
   {
     add_filter('mce_external_plugins', 'add_plugin_3');
     add_filter('mce_buttons_3', 'register_button_3');
   }
}
//setup array of shortcode buttons to add
function register_button_3($buttons) {
   array_push($buttons, "dropcap", "divider", "quote", "pullquoteleft", "pullquoteright", "boxdark", "boxlight", "togglesimple", "togglebox", "tabs", "signoff", "columns", "smallbuttons", "largebuttons", "lists");  
   return $buttons;
}
//setup array for tinyMCE editor interface
function add_plugin_3($plugin_array) {
   $plugin_array['lists'] = get_bloginfo('template_url').'/js/customcodes.js';
   $plugin_array['signoff'] = get_bloginfo('template_url').'/js/customcodes.js';
   $plugin_array['dropcap'] = get_bloginfo('template_url').'/js/customcodes.js';
   $plugin_array['divider'] = get_bloginfo('template_url').'/js/customcodes.js';
   $plugin_array['quote'] = get_bloginfo('template_url').'/js/customcodes.js';
   $plugin_array['pullquoteleft'] = get_bloginfo('template_url').'/js/customcodes.js';
   $plugin_array['pullquoteright'] = get_bloginfo('template_url').'/js/customcodes.js';
   $plugin_array['boxdark'] = get_bloginfo('template_url').'/js/customcodes.js';
   $plugin_array['boxlight'] = get_bloginfo('template_url').'/js/customcodes.js';
   $plugin_array['togglesimple'] = get_bloginfo('template_url').'/js/customcodes.js';
   $plugin_array['togglebox'] = get_bloginfo('template_url').'/js/customcodes.js';
   $plugin_array['tabs'] = get_bloginfo('template_url').'/js/customcodes.js'; 
   $plugin_array['columns'] = get_bloginfo('template_url').'/js/customcodes.js';
   $plugin_array['smallbuttons'] = get_bloginfo('template_url').'/js/customcodes.js';
   $plugin_array['largebuttons'] = get_bloginfo('template_url').'/js/customcodes.js';
   return $plugin_array;
}
add_action('init', 'add_button_3'); // add the add_button function to the page init

Однако добавляемая строка не переключается кнопкой кухонной раковины.

Share
  1. Вы имеете в виду внутри 2-го, 3-го, 4-го основных рядов или добавление 5-го, 6-го пользовательского ряда?

    • 0
  2. Да!

    • Используйте mce_buttons_2 фильтр, чтобы добавить кнопки во вторую строку.
    • Используйте mce_buttons_3 фильтр, чтобы добавить кнопки в третью строку.

    Вот пример того, что я использую:

    function mytheme_mce_buttons_row_3($buttons) {
    
         $buttons[] = 'fontselect';
         $buttons[] = 'fontsizeselect';
         $buttons[] = 'code';
         $buttons[] = 'sup';
         $buttons[] = 'sub';
         $buttons[] = 'backcolor';
         $buttons[] = 'separator';
         $buttons[] = 'hr';
         $buttons[] = 'wp_page';
    
         return $buttons;
    
    }
    add_filter("mce_buttons_3", "mytheme_mce_buttons_row_3");
    

    Просто поместите это в functions.php. (Я поместил его в свою функцию настройки темы, которая подключается к after_setup_theme .)

    РЕДАКТИРОВАТЬ:

    Я не знаю, имеет ли это значение или нет, но вы используете array_push($buttons, $button), а я использую$buttons[] = $button

    Вот ваш код:

    //setup array of shortcode buttons to add
    function register_button_3($buttons) {
       array_push($buttons, "dropcap");
       array_push($buttons, "divider");
       array_push($buttons, "quote");
       array_push($buttons, "pullquoteleft");
       array_push($buttons, "pullquoteright");
       array_push($buttons, "boxdark");
       array_push($buttons, "boxlight");
       array_push($buttons, "togglesimple");
       array_push($buttons, "togglebox");
       array_push($buttons, "tabs");
       array_push($buttons, "signoff"); 
       array_push($buttons, "columns");
       array_push($buttons, "smallbuttons");
       array_push($buttons, "largebuttons");
       array_push($buttons, "lists");     
       return $buttons;
    }
    add_filter('mce_buttons_3', 'register_button_3');
    

    Что, используя мой метод, будет выглядеть так:

    //setup array of shortcode buttons to add
    function register_button_3($buttons) {
       $buttons[] = 'dropcap';
       $buttons[] = 'divider';
       $buttons[] = 'quote';
       $buttons[] = 'pullquoteleft';
       $buttons[] = 'pullquoteright';
       $buttons[] = 'boxdark';
       $buttons[] = 'boxlight';
       $buttons[] = 'togglesimple';
       $buttons[] = 'togglebox';
       $buttons[] = 'tabs';
       $buttons[] = 'signoff'; 
       $buttons[] = 'columns';
       $buttons[] = 'smallbuttons';
       $buttons[] = 'largebuttons';
       $buttons[] = 'lists';     
       return $buttons;
    }
    add_filter('mce_buttons_3', 'register_button_3');
    

    Попробуй?

    • 0

Оставить ответ

You must login to add an answer.