Black Studio TinyMCE Widget
Плагин добавляет новый текстовый виджет с поддержкой визуального и HTML редактора WordPress. Виджет позволяет вставлять в сайдбар и другие области темы форматированный текст с картинками и прочими медиа-объектами. Также в тексте можно использовать любые поддерживаемые шоткоды.
С выходом WordPress 4.8 данный плагин неактуален, так как виджет "Текст" теперь имеет визуальный редактор из коробки.
С Black Studio TinyMCE Widget вы сможете редактировать виджеты в режиме WYSIWYG с использованием родного редактора WordPress TinyMCE, так же, как вы делаете это в обычных записях.
«Black Studio TinyMCE Widget» ориентирован прежде всего на новичков и людей не имеющих ничего общего с сайтостроением. На тех кому нужен результат здесь и сейчас. Однако и для опытных пользователей он тоже может быть удобен, потому что оснащен кучей хуков и грамотно спроектирован в коде.
Особенности плагина Black Studio TinyMCE Widget
- Текстовый виджет с функционалом визуального и HTML редактора WordPress
- Загрузка картинок и видео в медиатеку и вставка из неё
- Поддержка полноэкранного редактирования
- Редактирование виджета через кастомайзер
- Поддержка мультисайтовости (WordPress MU)
- Поддержка мультиязычных сайтов (WPML, Polylang, WPGlobus)
Хуки плагина
Плагин позволяет изменять HTML код виджета и контента который он выводит, через хуки. Их в плагине много. Кроме того, к контенту примеряются дополнительные хуки, чтобы, например обрабатывать вставленную в контент ссылку на youtube и делать из нее видео. Ниже все такие фильтры, которые применяются к контенту виджета. Все эти хуки включены и для контента обычной записи самого WordPress, однако в виджете не срабатывает хук the_content чтобы не вызывать ненужных конфликтов, потому что на этот хук цепляются разные плагины...
-
autoembed - Превращается специальные URL (пр. ссылка на youtube видео) в HTML код (встраивания).
-
convert_smilies - Изменяет текстовые смайлики в тексте на соответствующие смайлики-картинки. подробнее...
-
wpautop - Заменяет переносы строк на P и BR теги. подробнее...
-
do_shortcode - Обрабатывает все известные шорткоды. подробнее...
- wp_make_content_images_responsive - Фильтрует 'img' элементы в тексте добавляет к ним атрибуты 'srcset' и 'sizes'. подробнее...
Удалить такие фильтры можно следующим кодом где-нибудь в functions.php темы:
// отменить родные фильтры плагина add_action( 'init', 'remove_bstw_widget_text_filters' ); function remove_bstw_widget_text_filters() { if ( function_exists( 'bstw' ) ) { remove_filter( 'widget_text', array( bstw()->text_filters(), 'autoembed' ), 4 ); remove_filter( 'widget_text', array( bstw()->text_filters(), 'convert_smilies' ), 6 ); remove_filter( 'widget_text', array( bstw()->text_filters(), 'wpautop' ), 8 ); remove_filter( 'widget_text', array( bstw()->text_filters(), 'do_shortcode' ), 10 ); remove_filter( 'widget_text', array( bstw()->text_filters(), 'wp_make_content_images_responsive' ), 12 ); } } // отменить фильтры других плагинов повешенные на хук `widget_text` add_action( 'init', 'remove_bstw_widget_text_plugin_filters' ); function remove_bstw_widget_text_plugin_filters() { if ( function_exists( 'bstw' ) ) { remove_filter( 'widget_text', array( bstw()->compatibility()->module( 'wpml' ), 'widget_text' ), 2 ); remove_filter( 'widget_text', array( bstw()->compatibility()->module( 'nextgen_gallery' ), 'widget_text' ) ); } }
Через хуки можно изменить HTML код виджета
#1 Свой HTML код до и после текста виджета
add_filter( 'black_studio_tinymce_before_text', 'my_widget_before_text', 10, 2 ); function my_widget_before_text( $before_text, $instance ) { return '<div class="mytextwidget">'; } add_filter( 'black_studio_tinymce_after_text', 'my_widget_after_text', 10, 2 ); function my_widget_after_text( $after_text, $instance ) { return '</div>'; }
#2 Полное удаление тегов до и после текста виджета
add_filter( 'black_studio_tinymce_before_text', '__return_empty_string' ); add_filter( 'black_studio_tinymce_after_text', '__return_empty_string' );
#3 Отключим показ виджета, если в нем нет текста (он пустой)
add_filter( 'black_studio_tinymce_hide_empty', '__return_true' );
Полный список хуков смотрите в коде плагина на GitHub.
Удаление плагина и очистка его данных
Данные плагина хранятся в сериализованном массиве в таблице wp_options в опции 'widget_black-studio-tinymce'. Эти данные размещает сам WordPress и относятся они к виджету, а не к плагину, поэтому после удаления плагина данные намеренно не удаляются для сохранности. Если вы точно знаете что они не пригодятся после удаления плагина, то их нужно удалить вручную, таким кодом:
delete_option('widget_black-studio-tinymce');