我对此很好奇,于是查了一下抄本keyboard shortcuts, 但没有发现上面提到过。
我搜索了一下,发现这个问题似乎已经解决了。here 和here.
我还没有测试过这些其他插件,所以我不确定它们是如何解决的,但我决定接受挑战,看看如何解决这个问题;-)
下面是我创建快捷方式的技巧:
ctrl+s : Save Draft
ctrl+p : Publish / Update
使用以下在
after_wp_tiny_mce
挂钩:
/**
* Plugin Name: Testing ctrl+s and ctrl+p for saving and publishing posts.
* Plugin URI: https://wordpress.stackexchange.com/a/199411/26350
*/
add_action( \'after_wp_tiny_mce\', function()
{?><script>
( function ( $ ) {
\'use strict\';
$( window ).load( function () {
wpse.init();
});
var wpse = {
keydown : function (e) {
if( e.ctrlKey && 83 === e.which ) {
// ctrl+s for "Save Draft"
e.preventDefault();
$( \'#save-post\' ).trigger( \'click\' );
} else if ( e.ctrlKey && 80 === e.which ) {
// ctrl+p for "Publish" or "Update"
e.preventDefault();
$( \'#publish\' ).trigger( \'click\' );
}
},
set_keydown_for_document : function() {
$(document).on( \'keydown\', wpse.keydown );
},
set_keydown_for_tinymce : function() {
if( typeof tinymce == \'undefined\' )
return;
for (var i = 0; i < tinymce.editors.length; i++)
tinymce.editors[i].on( \'keydown\', wpse.keydown );
},
init : function() {
wpse.set_keydown_for_document();
wpse.set_keydown_for_tinymce();
}
}
} ( jQuery ) );
</script><?php });
我添加了wpse。向下键调用页面上的每个tinymce编辑器,因此也可以从那里使用快捷方式。
请注意,我使用after_wp_tiny_mce
钩子,作为vanilla 安装,因为我们正在处理tinymce javascript对象。当我们发布这样一个插件时,我们应该将它从中排队。js文件,像往常一样。
我们也可以使用SetupEditor
如前所述,轻微事故here 通过@bonger,但在这里我添加了一个额外的检查,以查看是否定义了tinymce,以避免在未定义的页面上出现javascript错误:
// Keydown for tinymce
if( typeof tinymce != \'undefined\' )
{
tinymce.on( \'SetupEditor\', function (editor) {
wpse.set_keydown_for_tinymce();
});
}
// Keydown for document
wpse.set_keydown_for_document();
我们也可以设置本机的tinymce快捷方式。
这可能需要一些测试&;调整,但它似乎对我的安装工作。