回答:
私はこれに興味があり、コーデックスのキーボードショートカットを確認しましたが、そこに記載されていませんでした。
私は検索したところ、これはすでに解決されているようです(ここやここなど)。
私はこれらの他のプラグインをテストしていないので、それらがどのようにそれを解決するのかわかりませんが、私は挑戦してこれがどのように解決できるかを確認することにしました;-)
だからここにショートカットを作成するための私のハックです:
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 });
ページ上のすべてのtinymceエディターにwpse.keydownイベントコールバックを追加したので、そこからもショートカットを利用できます。
tinymce javascriptオブジェクトを扱っているので、私はバニラインストールのafter_wp_tiny_mce
便利なテストフックとしてフックを使用していることに注意してください。そのようなプラグインを出荷するときは、通常どおり.jsファイルからエンキューする必要があります。
ここで@bongerが言及しているようにSetupEditor
、tinymceのイベントを使用することもできますが、ここでは、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ショートカットを設定することもできます。
これはいくつかのテストと調整を必要とするかもしれませんが、私のインストールで動作するようです。
after_wp_tiny_mce
期待しremove_post_type_support( 'post', 'editor' )
たり、複数のtinymceエディターを配置したりするバニラインストールの便利なテストフックになると思いました。しかし、他のフックも機能しますが、tinymceが定義されていることを確認する必要があります。ただし、プラグインは通常の方法で.jsファイルからエンキューして出荷します。@JanBeck
wpse.set_keydown_for_tinymce()
部分をスキップするwpse.set_keydown_for_document()
と、tinymceエディターからのctrl + {p、s}キーダウンイベントをキャッチしないことがわかりました。だから、私は気に理由のTinyMCEの最初の場所で;-)それはスキップされたことができれば、それは素晴らしい@JanBeckだろう
質問は古いですが、この目的のためのプラグインがあります:https : //wordpress.org/plugins/save-with-keyboard/