Stoppen Sie, dass TinyMCE leere Tags in WordPress entfernt – ja, ich habe bereits recherchiert

Lesezeit: 4 Minuten

[*]
MindSpyder

Wie viele andere Leute habe ich ein Problem damit, dass TinyMCE HTML-Tags entfernt – insbesondere die leeren, die ich mit Font Awesome verwende.

Ich habe Lösungen recherchiert und ausprobiert, aber nichts hat funktioniert. Ich bin nicht besonders gut mit PHP, aber das Problem, auf das ich stoße, ist folgendes: Jeder sagt, die Funktion tinyMCE.init in der Datei tinymce.js zu ändern. Da ich jedoch die neueste Version von WP verwende, habe ich das nicht. Was ich habe, ist class-wp-editor.php, in der Folgendes lebt:

            /*
         * For people who really REALLY know what they're doing with TinyMCE
         * You can modify $mceInit to add, remove, change elements of the config
         * before tinyMCE.init. Setting "valid_elements", "invalid_elements"
         * and "extended_valid_elements" can be done through this filter. Best
         * is to use the default cleanup by not specifying valid_elements,
         * as TinyMCE checks against the full set of HTML 5.0 elements and attributes.
         */
        if ( $set['teeny'] ) {

            /**
             * Filter the teenyMCE config before init.
             *
             * @since 2.7.0
             *
             * @param array  $mceInit   An array with teenyMCE config.
             * @param string $editor_id Unique editor identifier, e.g. 'content'.
             */
            $mceInit = apply_filters( 'teeny_mce_before_init', $mceInit, $editor_id );
        } else {

            /**
             * Filter the TinyMCE config before init.
             *
             * @since 2.5.0
             *
             * @param array  $mceInit   An array with TinyMCE config.
             * @param string $editor_id Unique editor identifier, e.g. 'content'.
             */
            $mceInit = apply_filters( 'tiny_mce_before_init', $mceInit, $editor_id );
        }

Jetzt weiß ich, dass ich etwas mit valid_elements, Extended_valid_elements oder verify_html tun muss, aber ich weiß nicht, wie ich das machen soll. Ich kann den Kommentaren entnehmen, wo ich es einfügen soll, aber ich weiß nicht, welches ich verwenden soll oder welche Syntax die richtige ist.

Ich habe diese Geige gefunden: http://fiddle.tinymce.com/j9baab/1 aber wie gesagt, ich habe diese Funktion nirgendwo in WP.

Bitte helfen Sie!

Benutzeravatar von Michael Fromin
Michael Fromin

Sie möchten das wirklich nicht ändern class-wp-editor.php Datei, da sie jedes Mal, wenn Sie WordPress aktualisieren, überschrieben wird.

Der einfachste Weg, die Einstellungen von TinyMCE zu erweitern/zu ändern, besteht darin, ein einfaches WordPress-Plugin zu erstellen und die von WordPress bereitgestellten Hooks zu nutzen, um die Einstellungen des Editors zu ändern.

Um Ihren speziellen Wunsch zu lösen, dem Init Optionen hinzuzufügen, die Sie sich ansehen möchten 'tiny_mce_before_init' Haken. Sie könnten im Plugin so etwas tun:

add_filter('tiny_mce_before_init', 'add_my_options');

function add_my_options($opt) {   
    // $opt is the existing array of options for TinyMCE 
    // We simply add a new array element where the name is the name
    // of the TinyMCE configuration setting.  The value of the array
    // object is the value to be used in the TinyMCE config.

    $opt['extended_valid_elements'] = '*[*]';
    return $opt;
}

Ein einfaches WP-Plugin zu schreiben ist nicht allzu schwer – es gibt viele Beispiele im Internet. Für etwas so Einfaches ist es eigentlich nur eine einzige PHP-Datei. Sobald Sie das Plugin erstellt haben, müssen Sie es nur noch installieren und aktivieren. Nach der Aktivierung wird Ihr Code bei jedem Aufruf von TinyMCE ausgeführt und Ihre Optionen werden in den Init-Code eingefügt.

BEARBEITEN: Hier ist der Code aus dem OP-Kommentar (einfacher zu lesen als die Formatierung der Kommentare):

<?php
/**
 * Plugin Name: Disable TinyMCE Filters
 * Plugin URI: http://mindspyder.com
 * Description: This plugin disables annoying TinyMCE Filters.
 * Version: 1.0.0
 * Author: Brandon Snow
 * Author URI: http://mindspyder.com
 * License: GPL2
 */
 add_filter('tiny_mce_before_init', 'add_my_options');

function add_my_options($opt) {   
    // $opt is the existing array of options for TinyMCE 
    // We simply add a new array element where the name is the name
    // of the TinyMCE configuration setting.  The value of the array
    // object is the value to be used in the TinyMCE config.

    $opt['extended_valid_elements'] = '*[*]';
    return $opt;
}
?>

  • Danke Michael – OK, ich habe „disable-tinymce-filters.php“ erstellt und in den Plugins-Ordner hochgeladen. WP hat es erkannt und ich habe es aktiviert. Nichts hat sich geändert! Hier sind die Inhalte von „disable-tinymce-filters.php“:

    – MindSpyder

    21. April 2016 um 13:25 Uhr

  • []’; return $opt; } ?>

    – MindSpyder

    21. April 2016 um 13:26 Uhr

  • Was mache ich falsch? Wird oben aktualisiert, damit es einfacher zu lesen ist.

    – MindSpyder

    21. April 2016 um 13:27 Uhr

  • Lassen Sie uns dies in zwei Themen unterteilen: (1) Wie Sie TinyMCE so konfigurieren, dass es das tut, was Sie wollen, und (2) Wie Sie diese Konfiguration in WordPress übernehmen. Beginnen wir mit der Erstellung einer einfachen TinyMCE-Fiddle, die es Ihnen ermöglicht, mit der TinyMCE-Konfiguration außerhalb von WordPress zu spielen. TinyMCE Fiddle ist kostenlos und ermöglicht Ihnen das einfachere Testen verschiedener Konfigurationen. Können Sie in TinyMCE Fiddle eine TinyMCE-Initialisierung erstellen, die genau das tut, was Sie mit Ihrem HTML wollen? Sobald Sie Fiddle dazu gebracht haben, seine URL hier zu posten, können wir sowohl die Init-Datei als auch den HTML-Code sehen, den Sie behalten möchten.

    – Michael Fromin

    21. April 2016 um 13:46 Uhr

  • OK Michael – ich habe es mit der Geige versucht und weiß offensichtlich nicht, was ich in dieser Hinsicht mache. Hier ist die Geige: fiddle.tinymce.com/wwfaab Folgendes habe ich eingegeben: docwangu.com/product-tag/botswana“>

    Botswana Folgendes bekomme ich zurück:

     

    docwangu.com/product-tag/botswana/”>Botswana> Wie schaffe ich es, dass dieses dumme Ding aufhört, meinen Code zu ändern, und es einfach so belässt?

    – MindSpyder

    2. Mai 2016 um 7:55 Uhr


1451160cookie-checkStoppen Sie, dass TinyMCE leere Tags in WordPress entfernt – ja, ich habe bereits recherchiert

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

Privacy policy