Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

forced_root_block : ""

Итак, ваш полный код будет таким:

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

Привет!

Ответ 3

Как насчет

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

Ответ 4

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

forced_root_block : ""

Ответ 5

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

Ответ 6

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

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

Здесь вы удаляете начальный и конечный p-тэг всего TinyMCE HTML при его отображении. Не работает с другими тэгами или конфигурацией 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.

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

Ответ 7

Вставьте в тему 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" (например).

Ответ 8

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

будут удалены, добавив некоторые параметры в tiny_mce_before_init hook. Если вы хотите посмотреть, как это работает, вы можете прочитать дальше на этой странице: 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' );

Ответ 9

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

forced_root_block : false

Ответ 10

Если вы используете jQuery, вы можете сделать:

$("p").remove();