如何删除tinyMCE 4中的键盘快捷键?

时间:2014-11-16 23:29:45

标签: wordpress tinymce

我想知道是否有人可以为我提供从Wordpress 4.0中的tinyMCE中删除键盘快捷键的解决方案? 由于我使用前端文本编辑器,我想禁用ALT + SHIFT + M(打开媒体库)和ALT + F(打开全屏,用户无法添加括号开放)

任何帮助将不胜感激

1 个答案:

答案 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上的编辑器快捷方式。

希望这有帮助。