it-swarm.com.de

Entfernen Sie alle versteckten Formatierungen, wenn Sie sie in TinyMCE einfügen

In WordPress v4 + möchte ich alle versteckten Formatierungen entfernen, wenn Benutzer Inhalte in den visuellen TinyMCE-Editor einfügen.

Die Schaltfläche Einfügen als Text funktioniert, wenn Benutzer Text aus Microsoft Word einfügen, jedoch nicht mit anderen Anwendungen wie Pages for OSX arbeiten.

Sie können Folgendes verwenden, um alle Formatierungen für Word herauszufiltern (danke Till Kruss ):

class PasteAsPlainText {

    function __construct() {

        add_action( 'admin_init', array( $this, 'init' ) );

    }

    function init() {

        add_filter( 'tiny_mce_before_init', array( $this, 'forcePasteAsPlainText' ) );
        add_filter( 'teeny_mce_before_init', array( $this, 'forcePasteAsPlainText' ) );
        add_filter( 'teeny_mce_plugins', array( $this, 'loadPasteInTeeny' ) );
        add_filter( 'mce_buttons_2', array( $this, 'removePasteAsPlainTextButton' ) );

    }

    function forcePasteAsPlainText( $mceInit ) {

        global $tinymce_version;

        if ( $tinymce_version[0] < 4 ) {
            $mceInit[ 'paste_text_sticky' ] = true;
            $mceInit[ 'paste_text_sticky_default' ] = true;
        } else {
            $mceInit[ 'paste_as_text' ] = true;
        }

        return $mceInit;
    }

    function loadPasteInTeeny( $plugins ) {

        return array_merge( $plugins, (array) 'paste' );

    }

    function removePasteAsPlainTextButton( $buttons ) {

        if( ( $key = array_search( 'pastetext', $buttons ) ) !== false ) {
            unset( $buttons[ $key ] );
        }

        return $buttons;

    }

}

new PasteAsPlainText();

Anschließend können Sie die Schaltfläche Einfügen als Text ausblenden (damit Benutzer sie nicht deaktivieren können), indem Sie auswählen, welche Schaltflächen Sie anzeigen möchten:

function formatTinyMCE( $in ) {
    $in['toolbar1'] = 'bold,custom_em,blockquote,aligncenter,link,unlink,spellchecker,undo,removeformat';
    return $in; 
}
add_filter( 'tiny_mce_before_init', 'formatTinyMCE' );

Nachdem wir Word (endlich) aus dem Weg geräumt haben, wie entfernen wir alle versteckten Formatierungen, die in TinyMCE eingefügt wurden?

UPDATE: Eine Möglichkeit könnte sein, eine Init-Option wie paste_Word_valid_elements zu finden und eine leere Liste gültiger Tags zu haben.

6

Ich verstehe nicht ganz, was Sie brauchen, aber ich denke, Sie versuchen, Text von überall als einfachen Text einzufügen: Browser, M $ Word, Seiten.

Zu diesem Zweck können Sie das Advanced TinyMCE Configuration Plugin verwenden. Nach dem Download und der Aktivierung dieses Plugins ist eine manuelle Konfiguration erforderlich. Diese Lösung ist besser als der im obigen Abschnitt vorgeschlagene Code.

Option name                  Value
paste_strip_class_attributes all
paste_remove_spans           true
paste_remove_styles          true
paste_as_text                true
paste_text_sticky            true
block_formats                Paragraph=p;Header 2=h2;...

Alle diese Teile (Parameter) von config können auf Tiny MCE-Dokumentationsseiten basieren.

  1. paste_strip_class_attributes - altes Attribut von 3.?.? Version zum Entfernen aller Tags-Attribute wie href, alt, class, onError, ..
  2. paste_remove_spans - auch ab 3.?.? Ausführung. Ermöglicht das Entfernen aller span-Elemente (Inline-Elemente?) Beim Einfügen.
  3. paste_remove_styles - Wenn true, werden beim Einfügen alle Stilinformationen entfernt, unabhängig vom Browsertyp. Das Einfügen von Word 2000 führt zu einem Fehler von tinyMCE.
  4. paste_as_text - Mit dieser Option können Sie den Standardstatus der Menüoption "Als Text einfügen" festlegen. Es ist standardmäßig deaktiviert, kann aber standardmäßig erzwungen werden.
  5. paste_text_sticky - Lässt die Funktion "Text einfügen" aktiv, bis der Benutzer die Schaltfläche "Als Text einfügen" deaktiviert.
  6. block_formats - zusätzliche Konfiguration für meine Site :)

Diese Konfiguration funktioniert auf meinen Sites einwandfrei und ich füge in TinyMCE immer Text wie einen einfachen Text ein.

Auch hilfreiches Plugin für TinyMCE Tuning TinyMCE Advanced .

1