Jak wyłączyć TinyMCE z usuwania znaczników zakresu

10

Publikuję HTML wygenerowany w programie Word do WordPress za pośrednictwem XMLRPC. Zanim przejdę do post.php, format jest poprawnie zachowany w bazie danych. TinyMCE wykonuje swoją magię i tracę sporo szczegółów formatowania.
Głównym problemem, jaki widzę, jest to, że <span>znacznik z informacjami o stylu otaczającymi inne elementy jest usuwany. Sprawdziłem, że te tagi są rzeczywiście usuwane przez TinyMCE, a nie Kses. Czy istnieje sposób, aby uniemożliwić TinyMCE zmianę kodu HTML? próbowałem

add_filter('tiny_mce_before_init', 'tinymce_init');

function tinymce_init( $init ) {
    $init['extended_valid_elements'] .= ', span[style|id|nam|class|lang]';
$init['verify_html'] = false;
    return $init;
}

co nie pomogło. Zgodnie z dokumentacją TinyMCE „Verify_html”

Ta opcja włącza lub wyłącza funkcję czyszczenia elementu. Jeśli ustawisz tę opcję na false, wszystkie czyszczenie elementów zostanie pominięte, ale inne funkcje czyszczenia, takie jak konwersja adresów URL, będą nadal wykonywane.

ltfishie
źródło

Odpowiedzi:

6

Nie mogłem znaleźć extended_valid_elementsopcji w panelu ustawień dla TinyMCE Advanced, ale dodałem następujące do mojego functions.phprozwiązanego:

function override_mce_options($initArray) {
    $opts = '*[*]';
    $initArray['valid_elements'] = $opts;
    $initArray['extended_valid_elements'] = $opts;
    return $initArray;
} add_filter('tiny_mce_before_init', 'override_mce_options');

Źródło

Sim
źródło
4

Prawie zawsze używam wtyczki TinyMCE Advanced - istnieje strona administratora (Ustawienia-> Konfiguracja TinyMCE), która pozwala dodawać obsługiwane tagi za pomocą tej extended_valid_elementsopcji. Po prostu dodaj spani wszelkie inne tagi, których nie chcesz usuwać, i ciesz się!

SickHippie
źródło
Dzięki, TinyMCE Advanced robi dokładnie to samo, co mój kod powyżej, aby dodać Extended_valid_elements. Ale zrobię to z wtyczką. Może mam jakiś błąd w kodzie.
ltfishie
Zainstaluj i wypróbuj - jeśli to działa, problem tkwi w kodzie. Jeśli nie, coś innego przesłania to na poziomie wtyczki lub motywu.
SickHippie
2
Nie mogłem znaleźć miejsca w najnowszej wersji TinyMCE Advanced, aby dodać elementy
Nicola Peluchetti
Nie jest to zaskakujące, ponieważ ten post ma 3 1/2 lat.
SickHippie