Intereting Posts
Удалите неправильные тире из get_the_title () WordPress multisite с субдоменом и каталогом одновременно Замените атрибуты изображения для плагина lazyload на элементах изображения с определенным классом Настройка результатов поиска Изменить URL-адрес comment_reply_link Захват YouTube Thumbnail ПОСЛЕ почты? отключить плагин на определенных страницах динамического buddypress Перед удалением сообщения Как создать группы пользователей и разрешить настраиваемые сообщения и плагин изменять / получать доступ к определенной группе? Изменение фонового изображения на страницу Вопросы по репликации плагинов Как создать страницу, в которой перечислены все категории с ее рейтингами Сложное имя изображения, например, flickr, и запрещает доступ только к оригинальному изображению Пользовательская структура URL – страницы под настраиваемым типом сообщения к какому типу пользовательских сообщений относится этот архив?

Как отключить быстрые клавиши TinyMCE 4

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

Я нашел здесь один ответ, но либо не знаю, как его применять, либо он не работает с TinyMCE 4 (который был введен с WP 3.9+).

Кто-нибудь с разумными знаниями TinyMCE и WP, которые могут взломать это?

Re ответ, процитированный OP:

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

Флаги custom_shortcuts упоминаются в tinymce 3.x (см. Здесь ), но были удалены из 4.x, и при сканировании источника ничего эквивалентного, похоже, не было заменено.

Указанный метод функции foo все еще можно использовать. В «functions.php» вашей темы:

 add_action( 'wp_tiny_mce_init', function () { ?> <script> function wpse167402_tiny_mce_init(ed) { ed.on('init', function () { // Note these lists may not be complete & that other tinymce plugins can add their own shortcuts anyway. var ctrls = [ 'b', 'i', 'u', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'z', 'y,ctrl+shift+z', 's', 'k', 'Alt+F', 'P', 'shift+e > ctrl+shift+p' ]; // Could add 'x', 'c', 'v'. var metas = [ 'b', 'i', 'u', 'z', 'y,meta+shift+z', 's', 'k' ]; // Could add 'x', 'c', 'v'. var modKeys = [ 'c', 'r', 'l', 'j', 'q', 'u', 'o', 'n', 's', 'm', 'z', 't', 'd', 'h', 'o', 'x', 'a', 'w' ]; var accesss = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 's', 'c', 'r', 'l', 'j', 'q', 'u', 'o', 'm', 'z', 't', 'd', 'h', 'p', 'x' ]; var others = [ 'Ctrl+Shift+F', 'Meta+K', 'alt+119', 'Alt+F10', 'Alt+F9', 'Alt+F10,F10', 'Alt+F11' ]; var i; // Overwrite shortcuts with no-op function. Key sequences will still be captured. for (i = 0; i < ctrls.length; i++ ) { this.addShortcut('ctrl+' + ctrls[i], '', function () {}); } for (i = 0; i < metas.length; i++ ) { this.addShortcut('meta+' + metas[i], '', function () {}); } for (i = 0; i < modKeys.length; i++ ) { this.addShortcut('alt+shift+' + modKeys[i], '', function () {}); } for (i = 0; i < accesss.length; i++ ) { this.addShortcut('access+' + accesss[i], '', function () {}); } for (i = 0; i < others.length; i++ ) { this.addShortcut( others[i], '', function () {}); } }); } </script> <?php }); function wpse167402_tiny_mce_before_init( $mceInit ) { $mceInit['setup'] = 'wpse167402_tiny_mce_init'; return $mceInit; } add_filter( 'tiny_mce_before_init', 'wpse167402_tiny_mce_before_init' ); 

Оригинальный ответ

Исходный ответ заменил объект shortcuts редактора на no-op (событие SettupEditor запускается до создания любых экземпляров tinymce):

 add_action( 'wp_tiny_mce_init', function () { ?> <script> tinymce.on('SetupEditor', function (editor) { editor.shortcuts = { add: function() {} }; }); </script> <?php }); 

Хотя это отключает ярлыки всех tinymce, у этого есть неудачный побочный эффект, позволяющий поведение браузера по умолчанию, которое для элементов contentEditable (которые поле редактирования tinymce помечено как) может включать в себя различное форматирование, такое как ctrl + b, ctrl + i и ctrl + u (документация по этому вопросу очень плохая), в зависимости от браузера. Способ, который делает этот ответ в основном таким же, как и первый, заключается в том, чтобы просто передать ярлыки исходной функции с заменой cmdFunc на функцию noop:

 add_action( 'wp_tiny_mce_init', function () { ?> <script> tinymce.on('SetupEditor', function (editor) { var orig_shortcuts_add = editor.shortcuts.add; editor.shortcuts.add = function(pattern, desc, cmdFunc, scope) { return orig_shortcuts_add(pattern, desc, function () {}, scope); }; }); </script> <?php }); 

Id просто думал об общем: я использую tinymce в интерфейсе через wp_editor () Я отключил быстрые клавиши, такие как вставка / редактирование ссылки и т. Д. Или помощь, и я использую:

 <?php $content = $posted['rm_details']; $editor_id = 'rm_details'; $settings = array( 'media_buttons' => false, 'drag_drop_upload' => false, 'textarea_rows' => '15', 'tinymce' => array( 'content_css' => get_template_directory_uri() . '/styles/tinymce5.css', 'toolbar1' => 'bold,bullist,numlist', 'toolbar2' => '', 'paste_word_valid_elements' => 'p,b,strong,li,br', 'plugins' => '', ), 'quicktags' => false ); wp_editor( esc_textarea( $content ), $editor_id, $settings ); ?> 

Установка «плагинов» => '', кажется, делает трюк.

Также, похоже, это позволяет использовать ярлыки для браузера по умолчанию для меня,

благодаря

Натан