it-roy-ru.com

Как я могу удалить теги, которые автоматически добавляются в tinymce

Я использую tinymce 4.0.1, и он автоматически добавляет теги p, когда вы начинаете печатать или нажимаете ввод. Как я могу динамически удалить эти теги p, а затем снова вставить содержимое в редактор.

20
Juan Gonzales

Tinymce нужен корневой элемент блока , который по умолчанию является абзацем, чтобы иметь возможность стилизовать контент. Таким образом, удаление этих абзацев приведет только к тому, что весь контент будет заключен в один абзац, потому что tinymce вынужден использовать это как элемент корневого блока.

13
Thariama

вам нужно добавить следующую строку в ваш оператор инициализации

forced_root_block : ""

Итак, ваш полный код будет выглядеть так:

    <script>tinymce.init({forced_root_block : "",selector:'textarea'});</script>

С уважением!

47
turco_7

Вы можете удалить тег "p", добавив forced_root_block : false к вашей настройке tinymce, или вы можете скрыть строку состояния с помощью statusbar: false 

3
Fadel

Как насчет

$("p").each(function(){$(this).parent().append($(this).html()); $(this).remove()})
2
gnuger

Можете ли вы просто настроить то, что TinyMCE помещает в базу данных при ее отображении? Смотрите мой пост для то же самое для Rails .

var str = "{TinyMCE HTML string}"; /* however you get it */
str = str.replace(/^\<p\>/,"").replace(/\<\/p\>$/,"");

Здесь вы удаляете начальный и конечный тег p всего TinyMCE HTML при его отображении. Не связывается с другими тегами p или конфигурацией TinyMCE.

Объяснение выражения регулярного выражения (убрано для удобства чтения):

^<p> - find <p> at the start of the string (^) and replace it with nothing.
</p>$ - find </p> at the end of the string ($) and replace it with nothing.

Надеюсь это поможет.

1
Ed Birm

Добавьте это только в вызове JavaScript:

forced_root_block : false
1
Rodrigo Prazim

Вам нужно добавить следующую строку в вашу инструкцию init.

forced_root_block : ""
1
user3212640

Добавьте это в ваш файл functions.php и стандарт 

теги будут удалены путем добавления некоторых параметров в ловушку tiny_mce_before_init . Если вы хотите увидеть, как это работает, вы можете прочитать далее на этой странице: https://codex.wordpress.org/TinyMCE

////////////////////////////////////////////////////////////////////////
//////////REMOVE STANDARD <P> FROM TINYMCE EDITOR/////////////////////////
///////////////////////////////////////////////////////////////////////
function my_format_TinyMCE( $in ) {
$in['forced_root_block'] = "";
$in['force_br_newlines'] = TRUE;
$in['force_p_newlines'] = FALSE;
return $in;
}
add_filter( 'tiny_mce_before_init', 'my_format_TinyMCE' );
0
Nateno

Вставьте в тему functions.php следующий код:

add_filter('tiny_mce_before_init', 'my_switch_tinymce_p_br'); 

function my_switch_tinymce_p_br($settings) {
    $settings['forced_root_block'] = false;
    return $settings;
}

Если вы хотите заменить корневой тег «p» другим, замените false на «div» (например).

0
Mikle Gardener