我想知道是否有人可以为我提供从Wordpress 4.0中的tinyMCE中删除键盘快捷键的解决方案? 由于我使用前端文本编辑器,我想禁用ALT + SHIFT + M(打开媒体库)和ALT + F(打开全屏,用户无法添加括号开放)
任何帮助将不胜感激
答案 0 :(得分:2)
这是一个优雅的解决方案(original answer here),只需将其添加到 functions.php 文件中:
<?php
add_action( 'wp_tiny_mce_init', function () {
?>
<script>
function wp_disable_shortcuts_tiny_mce_init(editor) {
editor.on('init', function () {
this.addShortcut('alt+ctrl+f', '', function () {}); //altgr is alt+ctrl
this.addShortcut('alt+ctrl+g', '', function () {}); //just in case...
this.addShortcut('alt+shift+m', '', function () {});
//you could add a for loop to disable multiple shortcuts as in OP's answer
// var ctrls = [ 'a', 'b', 'c', 'd' ];
// for( var i = 0; i < ctrls.length; i++ ){
// this.addShortcut('ctrl+' + ctrls[i], '', function () {});
// }
});
}
</script>
<?php
});
function wp_disable_shortcuts_tiny_mce_before_init( $mceInit ) {
$mceInit['setup'] = 'wp_disable_shortcuts_tiny_mce_init';
return $mceInit;
}
add_filter( 'tiny_mce_before_init', 'wp_disable_shortcuts_tiny_mce_before_init' );
?>
以下是使用的功能和过滤器的简要说明。
此过滤器授予开发人员访问TinyMCE设置数组的权限,
add_filter( 'tiny_mce_before_init', 'wp_disable_shortcuts_tiny_mce_before_init' );
我们可以使用以下方法在TinyMCE设置上挂钩我们的js函数:
function wp_disable_shortcuts_tiny_mce_before_init( $mceInit ) {
$mceInit['setup'] = 'wp_disable_shortcuts_tiny_mce_init';
return $mceInit;
}
最后,这个动作,
add_action( 'wp_tiny_mce_init', function(){ ... });
加载tinymce.js后触发,但在创建任何TinyMCE编辑器实例之前触发。在这里,我们创建了我们的javascript函数,它将通过用无操作函数替换它们来禁用init上的编辑器快捷方式。
希望这有帮助。