it-swarm.com.de

Tastaturkürzel zum Aktualisieren einer Seite oder eines Beitrags?

Was ist die Tastenkombination Taste zum Aktualisieren einer Seite oder eines Posts? Es könnte mir viel Zeit sparen, da das Herunterrollen eines Seitenentwurfs zeitaufwändig ist.

8
Paul Felt

Ich war neugierig und überprüfte den Codex auf Tastaturkürzel , fand ihn dort aber nicht erwähnt.

Ich suchte und fand heraus, dass dies anscheinend bereits gelöst ist, z. hier und hier .

Ich habe diese anderen Plugins noch nicht getestet, daher bin ich mir nicht sicher, wie sie es lösen, aber ich habe mich entschlossen, die Herausforderung anzunehmen und zu sehen, wie dies gelöst werden könnte ;-)

Also hier ist mein Hack für das Erstellen von Verknüpfungen für:

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

mit dem folgenden Test-Plugin, das im after_wp_tiny_mce hook ausgeführt wird:

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

Ich habe jedem tinymce -Ereignis-Rückruf auf der Seite den wpse.keydown -Ereignis-Rückruf hinzugefügt, damit die Verknüpfungen auch von dort aus verfügbar sind.

Beachten Sie, dass ich den Hook after_wp_tiny_mce als praktischen Test-Hook für eine Vanilla -Installation verwende, da es sich um das Javascript-Objekt tinymce handelt. Wenn wir ein solches Plugin ausliefern, sollten wir es wie üblich aus einer .js-Datei in die Warteschlange stellen.

Wir könnten auch das SetupEditor -Ereignis von tinymce verwenden, wie hier von @bonger erwähnt, aber hier habe ich eine zusätzliche Prüfung hinzugefügt, um festzustellen, ob tinymce definiert ist Vermeiden Sie Javascript-Fehler auf Seiten, auf denen es nicht definiert ist:

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

Wir könnten wahrscheinlich auch native tinymce Verknüpfungen einrichten.

Dies erfordert möglicherweise einige Tests und Anpassungen, scheint jedoch bei meiner Installation zu funktionieren.

8
birgire