wp_editor всегда конвертирует <br> в<p>& nbsp;</ p>

Я создаю собственный плагин, который имеет wp_editor на администратора, теперь, когда я поместил некоторые HTML-теги в редакторе в Text просмотреть вкладку как <br> и нажмите на Visual вкладка <br> превращается в <p>&nbsp;</p> когда я вернусь к Text Вкладка.

это мой php код:

$html_value = '<h1>test</h1><br> ....';
$settings = array( 'textarea_name' => 'al_srms_fileform_content', 'media_buttons' => true, 'wpautop' => false );
wp_editor($html_value, 'mycustomeditor0pdf', $settings );

это то, что происходит: я положил <br> отметить по Text Вкладка. введите описание изображения здесь

Я нажимаю Visual отобразить результат. введите описание изображения здесь

Я нажимаю обратно Text вкладка и <br> ушел и заменен <p>&nbsp;</p> введите описание изображения здесь

есть ли способ, когда положить <br> это остается <br>?

2 ответа

Я надеюсь, что это поможет вам. Вам не нужно устанавливать предложенный плагин. Просто добавьте этот мини плагин и все готово:

<?php
defined( 'ABSPATH' ) OR exit;
/* Plugin Name: TinyMCE break instead of paragraph */
function mytheme_tinymce_settings( $tinymce_init_settings ) {
    $tinymce_init_settings['forced_root_block'] = false;
    return $tinymce_init_settings;
}
add_filter( 'tiny_mce_before_init', 'mytheme_tinymce_settings' );

Теперь, когда вы нажимаете Enter, <br> тег будет вставлен вместо создания нового абзаца. Но будьте осторожны, если вы создадите два последовательных символа новой строки, текст все равно будет разделен на абзац в результате применения фильтра wpautop к содержимому вашего сообщения. Сначала нужно удалить этот фильтр и создать новый фильтр, который заменит все новые строки <br> теги. Добавьте что-то подобное в файл functions.php для отображения <br> теги в вашем шаблоне:

remove_filter ( 'the_content', 'wpautop' );
add_filter ( 'the_content', 'add_newlines_to_post_content' );
function add_newlines_to_post_content( $content ) {
    return nl2br( $content );
}

Проблема, с которой вы столкнулись, является результатом функции фильтра wpautop в вашем файле Themes functions.php.

Чтобы отключить эту функцию, добавьте следующие строки в файл functions.php, расположенный в каталоге тем:

remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );

Ссылка: https://codex.wordpress.org/Function_Reference/wpautop (Wordpress Codex)

Другие вопросы по тегам