Плагин Wordpress, получить HTML-контент - PullRequest
4 голосов
/ 01 августа 2011

Я создаю плагин WordPress, который действует, когда администратор сохраняет новый пост. Мне нужно получить содержание этого поста, и я получаю $_POST['content'] и $_POST['post_content'].
Проблема здесь в том, что я получаю только текст внутри этого контента, мне нужен HTML.

Таким образом, если я ожидал что-то вроде <p>Lorem</p><p>ipsum</p><p>dolor</p>, я получаю Lorem ipsum dolor.

Может кто-нибудь помочь мне, пожалуйста?

Спасибо

Ответы [ 3 ]

4 голосов
/ 02 августа 2011

Ну, как отмечает @ChrisCarson, Wordpress по умолчанию не сохраняет теги абзацев в базе данных.

Итак, что мне нужно сделать, так это разобрать абзацы сам, используя:

$content = explode(PHP_EOL . PHP_EOL, $this->request['content']);
$htmlcontent = '';
foreach($content as $line){
    $htmlcontent .= '<p>' . str_replace(PHP_EOL, '<br />' , $line) . '</p>';
}   

спасибо в любом случае

1 голос
/ 02 февраля 2013

Из кодекса: http://codex.wordpress.org/Template_Tags/the_content#Alternative_Usage

Если вы хотите получить тот же вывод, который возвращает the_content (), используйте следующий код:

<?php
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]&gt;', $content);
?>
1 голос
/ 01 августа 2011

Wordpress по умолчанию не сохраняет теги абзацев в базе данных. Попробуйте это ...

$content = trim(stripslashes($_POST["post_content"]));
$html = apply_filters("the_content", $content);
...