Кнопка-переключатель «кухонная раковина» 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
Однако добавляемая строка не переключается кнопкой кухонной раковины.
Вы имеете в виду внутри 2-го, 3-го, 4-го основных рядов или добавление 5-го, 6-го пользовательского ряда?
Я обновил свой вопрос кодом, который я использую. Кажется, я добавляю третью пользовательскую строку, верно? Я не уверен, в чем разница между рядами 2, 3 и 4 и рядами 5 и 6, о которых вы говорите…?
я имел ввиду фильтр.
Я использую фильтр mce_buttons_3
Я мог бы ответить на эти вопросы вместе с вашим предыдущим вопросом TinyMCE, мог бы избавить себя от необходимости публиковать новый (почти дублирующий) вопрос… 🙂
Я обновил свой вопрос кодом, который я использую. Я не уверен, в чем разница между вашим кодом и моим кодом. Как ваш код добавляет кнопки к кухонной раковине, а мой код — нет? Спасибо за вашу помощь.
Я обновил свой ответ, используя ваш пример кода.
Это тоже работает, но делает то же самое, что и метод «array_push». Ряд по-прежнему не переключается при нажатии кнопки кухонной раковины, а всегда виден.
немного сократил бы ваш код..
Кнопка «Кухонная раковина» переключает только ряд 2. Если ряды 3 или 4 заполнены, они всегда видны. Судя по всему, это [ core.trac.wordpress.org/ticket/9841 ] (ошибка/известная проблема в WordPress).
Да!
mce_buttons_2
фильтр, чтобы добавить кнопки во вторую строку.mce_buttons_3
фильтр, чтобы добавить кнопки в третью строку.Вот пример того, что я использую:
Просто поместите это в functions.php. (Я поместил его в свою функцию настройки темы, которая подключается к
after_setup_theme
.)РЕДАКТИРОВАТЬ:
Я не знаю, имеет ли это значение или нет, но вы используете
array_push($buttons, $button)
, а я использую$buttons[] = $button
Вот ваш код:
Что, используя мой метод, будет выглядеть так:
Попробуй?