Intereting Posts
специальный короткий кол-во символов типа post post wpdb получает аватары и авторский url WordPress Получить постоянную ссылку пользовательские результаты поиска – оформлять результаты по-разному по типу сообщения Шаблон категории для пользовательского типа сообщения Как удалить / блог / префикс для пользовательских типов сообщений в постоянных ссылках? Измените размер квадратного изображения одного продукта в woocommerce без обрезки Как разместить пользовательское поле перед редактором Предотвращение пустого заголовка сообщения в форме отправки через сообщение переднего конца (wp_insert_post_) Возможности не добавляют Показать всплывающее сообщение для определенных категорий Индивидуальный стиль дата месяц год Как получить ответы на комментарий? Самый эффективный способ получить сообщения с postmeta Дата Архивные страницы Ошибка 404

Добавление кнопок TinyMCE без удаления плагинов?

Я разрабатываю плагин, который я установлю для всех своих клиентов, чтобы сделать WordPress несколько проще в использовании для них. Одна из вещей, которые он изменит, – это конфигурация TinyMCE по умолчанию. Он добавит такие вещи, как underline и justifyfull к первой строке TinyMCE.

Я знаю, что могу использовать другие плагины, такие как TinyMCE Advanced, для изменения TinyMCE для моих клиентов, но они добавляют много лишнего раздувания, которое подвержено проблемам во время обновлений. Я хочу сделать это максимально минимальным, чтобы избежать проблем с обновлением.

Я написал этот простой код, который отлично работает:

 function mo_change_mce_buttons( $initArray ) { $initArray['theme_advanced_buttons1'] = 'bold,italic,underline,strikethrough,|,bullist,numlist,blockquote,|,justifyleft, justifycenter,justifyright,justifyfull,|,link,unlink,wp_more,|,spellchecker,fullscreen,wp_adv'; return $initArray; } add_filter('tiny_mce_before_init', 'mo_change_mce_buttons'); 

Этот код отлично работает, за исключением одной огромной проблемы. Он отключает любые плагины TinyMCE в соответствующей строке TinyMCE ( theme_advanced_buttons1 ). Например, плагин Vipers Video Quicktags , который добавляет кнопку YouTube, удаляется с помощью приведенного выше кода.

Как я могу изменить начальную строку TinyMCE по умолчанию, используя простой код в моем собственном плагине, не жертвуя возможностью для других плагинов добавлять к нему кнопки?

tiny_mce_before_init – это фильтр, который получает всю конфигурацию TinyMCE , но есть фильтры, которые действуют на более мелкие части, такие как mce_buttons только для кнопок . Преимущество в том, что они действуют на массивы, поэтому их легко добавлять или удалять. Вот как это делает Vipers Video Quicktags .

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

 add_filter( 'mce_buttons', 'wpse17686_mce_buttons' ); function wpse17686_mce_buttons( $old_buttons ) { $new_buttons = array(); foreach ( $old_buttons as $button ) { $new_buttons[] = $button; if ( 'italic' == $button ) { $new_buttons[] = 'underline'; } if ( 'justifyright' == $button ) { $new_buttons[] = 'justifyfull'; } } return $new_buttons; }