Intereting Posts
Измените пользовательские полевые данные перед созданием нового сообщения Запланировать будущую должность в статус персонализированного сообщения вместо публикации? Заказывать сообщения по значению мета и дате Открытые метаданные графика не натягиваются на Facebook до тех пор, пока я не запустил эту конкретную ссылку через отладчик Как я могу автоматически установить почтовый пул на основе заголовка сообщения во время публикации публикации? Сообщения удаляются каждый день ночью Как изменить текст комментария «допустимые теги» в плагине? Зачем использовать функции function_exists? Ссылка на профиль форума пользователя с их комментария Как удалить или отключить «Или ссылку на существующий контент» в диалоге «вставить ссылку»? Получение array_merge (): Аргумент # 2 не является массивом в register_post_type Массовая загрузка изображений и функциональность Rerrange Как отображать все сообщения только в тот же месяц и день? Как получить URL-адрес страницы автора с их идентификатора? Как фильтровать список бэкэнд-сообщений, показывающий только сообщения с коротким кодом

WP_editor не применяет wpautop к содержимому одной строки

Для текущего проекта я пытаюсь повторить строку текста, сохраненную на странице параметров темы. Я использую функцию wp_editor для ввода пользователя вместо текстового поля. Код, который я использую, довольно прост:

<?php break; case "wysiwyg" : ?> <tr valign="top"> <th scope="row"><?php echo $value['name']; ?>:</th> <td> <?php if( get_settings($value['id']) != "") { $settings = stripslashes(get_settings($value['id'])); }else{ $settings = $value['std']; } ?> <?php wp_editor($settings,$value['id'],array('wpautop' => true,'media_buttons'=>false)); ?> <br /><?php echo $value['desc']; ?> </td> </tr> <?php break; ?> 

Я пытался убедиться, что абзацы используются, добавив wpautop => true . Проблема возникает, когда я пытаюсь добавить одну строку текста в режиме WYSIWYG. При сохранении поля добавляется абзац абзаца. После перезагрузки страницы вид html будет изменен на WYSIWYG, и все мои HTML-теги исчезли.

Я попытался использовать функцию wpautop вручную, но это добавит пустой абзац после переменной insert. Мой код выглядит так:

 <?php echo wpautop(stripslashes($lo_homepage_highlight_1_text)) ;?> 

И вернется:

 <p>Lorem ipsum (.....) dolor sit amet. Great rich text</p> <p></p> 

Я не понимаю, чего здесь не хватает.

Solutions Collecting From Web of "WP_editor не применяет wpautop к содержимому одной строки"

Проведя еще несколько исследований, я узнал, что моя функция сохранения не работает. Я думаю, что я должен применить wpautop и wptexturize к этим записям. Моя функция сохранения выглядит так:

  if ( 'save' == $_REQUEST['action'] ) { foreach ($options as $value) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } foreach ($options as $value) { if( isset( $_REQUEST[ $value['id'] ] ) ) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } else { delete_option( $value['id'] ); } } header("Location: themes.php?page=functions.php&saved=true"); die; } 

Поскольку wp_editor определен в массиве как wysiwyg я должен иметь возможность получить GET-запрос, чтобы определить, отправлено ли поле из wp_editor. Я скорректировал код и теперь он работает:

  if ( 'save' == $_REQUEST['action'] ) { foreach ($options as $value) { if ($_REQUEST[$value['type']] == 'wysiwyg' ) { update_option( $value['id'], wpautop(wptexturize($_REQUEST[ $value['id'] ] ))); } else { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } foreach ($options as $value) { if( isset( $_REQUEST[ $value['id'] ] ) ) { if($_REQUEST[$value['type']] == 'wysiwyg') { update_option( $value['id'], wpautop(wptexturize($_REQUEST[ $value['id'] ] ))); } else { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } } else { delete_option( $value['id'] ); } } } header("Location: themes.php?page=functions.php&saved=true"); die; } 

Код может использовать некоторые улучшения, но он работает на данный момент 🙂