Что такое сочетание клавиш для обновления страницы или сообщения? Это может сэкономить мне много времени, так как просмотр черновика страницы занимает много времени.
источник
Что такое сочетание клавиш для обновления страницы или сообщения? Это может сэкономить мне много времени, так как просмотр черновика страницы занимает много времени.
Мне было любопытно по этому поводу и проверил кодекс по сочетаниям клавиш , но не нашел там упомянутого.
Я искал и обнаружил, что это, кажется, уже решено, например, здесь и здесь .
Я не проверял эти другие плагины, поэтому я не уверен, как они решают это, но я решил принять вызов и посмотреть, как это можно решить ;-)
Итак, вот мой хак для создания ярлыков для:
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.keydown для каждого редактора tinymce на странице, поэтому ярлыки будут доступны и там.
Обратите внимание, что я использую after_wp_tiny_mce
ловушку в качестве удобного тестового крючка для ванильной установки, поскольку мы имеем дело с объектом javascript tinymce . Когда мы отправляем такой плагин, мы, как обычно, ставим его в очередь из файла .js.
Мы также могли бы использовать SetupEditor
событие tinymce , как упомянуто здесь @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 .
Это может потребовать некоторого тестирования и корректировки, но, похоже, работает на моей установке.
after_wp_tiny_mce
что это будет удобная проверка для ванильной установки, где я не ожидаюremove_post_type_support( 'post', 'editor' )
или несколько редакторов tinymce на странице. Но другие хуки будут работать, но мы должны убедиться, что tinymce определен. Но мы бы поставили наш плагин, поставив его в очередь из файла .js обычным способом. @JanBeckwpse.set_keydown_for_tinymce()
часть, тоwpse.set_keydown_for_document()
не получит события нажатия клавиш ctrl + {p, s} из редактора tinymce . Так вот почему я в первую очередь беспокоился о лакомом ;-) Если бы это можно было пропустить, это было бы здорово @JanBeckВопрос старый, но для этого есть плагин: https://wordpress.org/plugins/save-with-keyboard/
источник