Atalho de teclado para atualizar uma página ou postar?

8

Qual é a tecla atalho de teclado para atualizar uma página ou postar? Isso pode me poupar muito tempo, já que fazer um rascunho de página é demorado.

    
por Paul Felt 22.08.2015 / 21:40

1 resposta

8

Eu estava curioso sobre isso e verifiquei o Codex em atalhos de teclado , mas não o encontrei mencionado aqui.

Eu pesquisei e descobri que isso parece estar resolvido, por exemplo aqui e aqui .

Eu não testei esses outros plugins, então não tenho certeza de como eles resolvem isso, mas eu decidi aceitar o desafio e ver como isso poderia ser resolvido; -)

Então, aqui está meu truque para criar atalhos para:

ctrl+s : Save Draft
ctrl+p : Publish / Update

com o seguinte plug-in de teste que é executado no after_wp_tiny_mce gancho:

/**
 * 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 });

Adicionei o wpse.keydown retorno de chamada de evento a todos os tinymce editor na página, para que os atalhos também estivessem disponíveis a partir de lá.

Note que eu uso o after_wp_tiny_mce hook, como um convinient test-hook em uma instalação vanilla , já que estamos lidando com o objeto javascript tinymce . Quando enviamos esse plugin, devemos enfileirá-lo de um arquivo .js, como de costume.

Também poderíamos usar o evento SetupEditor de tinymce , conforme mencionado aqui por @bonger, mas aqui eu adicionei uma verificação extra para ver se tinymce está definido, para evitar erro de javascript nas páginas em que não está definido:

// 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();

Poderíamos provavelmente configurar atalhos nativos tinymce também.

Isso pode precisar de alguns testes & ajustes, mas parece funcionar na minha instalação.

    
por birgire 23.08.2015 / 01:34