Я знаком с созданием самозакрывающихся коротких кодов, таких как:
// shortcode
function wpse_shortcode_example( $wpse_atts ) {
// Attributes
$wpse_atts = shortcode_atts(
array(
'foo' => 'bar',
'width' => '100%',
'height' => 'auto',
),
$wpse_atts,
'wpse'
);
// Return
return '<embed
src="' . $wpse_atts['src'] . '"
width="' . $wpse_atts['width'] . '"
height="' . $wpse_atts['height'] . '";
}
add_shortcode( 'wpse', 'wpse_shortcode_example' );
но я хотел бы начать добавлять их в TinyMCE. Я сделал несколько поисков, но все результаты поиска либо датированы, либо используют подход, который больше не рекомендуется:
- Как добавить кнопку шорткода в редактор TinyMCE? : отличная отправная точка, но вопрос был создан в 2012 году.
- WordPress Shortcodes: полное руководство : хорошая статья, но с 2012 года, и она использует,
query_posts()
но может быть изменена - Руководство по созданию собственного редактора WordPress. Кнопки : это хорошая статья, но она еще с 2013 года, но она не охватывает основы или основы использования TinyMCE.
Я знаю, что Разработчик все еще находится на ранних стадиях, но в Руководстве по подключаемым модулям только кратко говорится о расширенных шорткодах TinyMCE и API шорткодов и add_shortcode()
не упоминается TinyMCE.
Так что это приводит меня к моему вопросу. Какова основная процедура для превращения самозакрывающегося шорткода в нажимаемую кнопку в редакторе TinyMCE?
plugin-development
shortcode
tinymce
DᴀʀᴛʜVᴀᴅᴇʀ
источник
источник
Ответы:
Начнем с добавления пользовательской кнопки TinyMCE:
Затем мы объявляем и регистрируем новую кнопку:
Наконец, мы решаем, какие кнопки (подробнее о кнопках можно найти в разделе «Форматирование содержимого» ) мы хотим отобразить. Очевидно, что если вы имеете в виду UX, вы бы отобразили только некоторые из них, например:
Как вы можете видеть в
add_tinymce_plugin_custom_em
функции, мы объявляем файл javascript внутриget_template_directory_uri() .'/plug/custom-em/custom-em.js'
Итак, создайте
custom-em.js
файл, и тогда у вас есть два способа сделать это.Вы можете использовать следующий формат шорткода
[shortcode foo="" bar=""]
или[shortcode][/shortcode]
.Начнем с
[shortcode foo="" bar=""]
формата:Как видите, мы используем изображение в качестве значка кнопки. Вы можете изменить это на текст, как показано в примере ниже.
Следующее - это то, что мы используем на нашей собственной платформе, оно включает в себя выбор
<em class="whatever">hello world</em>
:Пожалуйста, опубликуйте результаты и внесите изменения. TinyMCE - чума и требует головной боли, но может быть решена совместным образом.
источник