WordPress: Wie funktioniert „Weiterlesen-Tag einfügen“?

Lesezeit: 2 Minuten

Benutzer-Avatar
Pedram Behroozi

Ich möchte dem tinyMCE-Editor auf einer neuen Beitragsseite eine Schaltfläche hinzufügen. Mit dieses toturial Ich habe es geschafft, dass der Knopf perfekt funktioniert, aber es gibt etwas, das ich nicht herausfinden konnte. Wenn Sie ein “Mehr”-Tag einfügen, wird ein Bild mit dem entsprechenden “Hintergrundbild” an den HTML-Code angehängt. Siehe Screenshot unten:
mehr Etikett

Aber wenn Sie in den ‘Text’-Modus wechseln, gibt es einen HTML-Kommentar wie diesen: <!--more-->.
Geben Sie hier die Bildbeschreibung ein

Ich könnte das Bild im HTML-Code hinzufügen, aber im ‘Text’-Modus gibt es eine img Schild.
Geben Sie hier die Bildbeschreibung ein
Geben Sie hier die Bildbeschreibung ein

Ich möchte sowas haben: <!--my-custom-tag-->

Wie schafft WordPress das? Oder wie könnte ich ein benutzerdefiniertes Tag im tinyMCE-Editor anhängen?

Ich habe die Antwort gefunden. Sie müssen hinzufügen BeforeSetContent und PostProcess Ereignisse auf dem Editor-Objekt (Wie ich bereits erwähnt habe, folgen Sie zuerst dieses toturial um Ihre Schaltfläche hinzuzufügen):

tinymce.create('tinymce.plugins.MyPlugin', {
    init: function(editor, url) {
        // Code to add the button...

        // Replace tag with image
        editor.on( 'BeforeSetContent', function( e ) {
            if ( e.content ) {
                if ( e.content.indexOf( '<!--my-custom-tag-->' ) !== -1 ) {
                    e.content = e.content.replace( '<!--my-custom-tag-->', '<img src="' + tinymce.Env.transparentSrc + '" ' + 'class="wp-my-custom-tag mce-wp-my-custom-tag" title="My Tag..." data-mce-resize="false" data-mce-placeholder="1" />');
                }
            }
        });
        // Replace image with tag
        editor.on( 'PostProcess', function( e ) {
            if ( e.content ) {
                if ( e.content.indexOf( '<!--my-custom-tag-->' ) !== -1 ) {
                    e.content = e.content.replace( '<!--my-custom-tag-->', '<img src="' + tinymce.Env.transparentSrc + '" ' + 'class="wp-my-custom-tag mce-wp-my-custom-tag" title="My Tag..." data-mce-resize="false" data-mce-placeholder="1" />';
                }
            }
        });

    }
});

Oder Sie können einen Shortcode erstellen. Ich verwende es immer, Sie können Ihren eigenen Code schreiben, damit Sie ihn verstehen. Wenig bis gar kein Schreiben in jQuery von tinymce!

Beispiel

function oex_toggle_ul($atts, $content = null){
extract(shortcode_atts(array(
    ),$atts));


   return '<ul>'.do_shortcode( $content ).'</ul>';

}

function oex_toggle($atts, $content = null){
    extract(shortcode_atts(array(
        'titel' => '',
        'open' => 'closed'
        ),$atts));

    return '<li class="'.$open.'"><a href="#">'.$titel.'<span></span></a><ul class="'.$open.'">'.do_shortcode( $content ).'</ul></li>';
}

https://codex.wordpress.org/Function_Reference/add_shortcode

  • Ich sollte deine Lösung auch testen. Aber ich habe meine Lösung von WordPress selbst gefunden. wp-includes > js > tinymce > plugins > wordpress > plugin.js:79

    – Pedram Behroozi

    6. Mai 2014 um 7:24 Uhr

1370700cookie-checkWordPress: Wie funktioniert „Weiterlesen-Tag einfügen“?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy