@AndreyBLG

Как спарсить содержание the_content() wordpress с html тегами?

Приветствую!
Известная функция the_content() выводит на страницу содержание редактора поста WP.
Если сделать var_dump( get_the_content() ) - он вернет все содержание редактора в виде одной строки string, в которой текст не обернут в теги.

Задача получить содержание редактора поста с html тегами.
Т.е. если в редакторе поста контент содержит:
На вкладке "Визуально" тегов нет
Пример заголовка
Первый параграф
Второй параграф

На вкладке "Текст" содержание с тегами !!!
<h1>Пример заголовка</h1>
<p>Первый параграф</p>
<p>Второй параграф</p>

Нужно получить или такой массив:
array(3) {
    [0] => string(25) "<h1>Пример заголовка</h1>",
    [1] => string(19) "<p>Первый параграф</p>",
    [2] => string(19) "<p>Второй параграф</p>"
}

Или одной строкой, но с тегами, строку можно будет обработать регуляркой:
array(1) {
    [0] => string(63) "<h1>Пример заголовка</h1><p>Первый параграф</p><p>Второй параграф</p>"
}

В итоге это нужно для того, чтобы "вырезать" h1 заголовок из the_content() и вставлять его в другом месте на странице.
Например, так, образно представьте структуру, надеюсь будет понятно:
the_title() поста
the_post_thumbnail() поста
the_content()  поста, в котором содержится {
<h1>Пример заголовка</h1>
<p>Параграф 1</p>
<p>Параграф 2</p>
}

Вместо такой структуры, нужно вывести такую:
<h1>Пример заголовка</h1>
the_title() поста
the_post_thumbnail() поста
the_content()  поста, в котором вырезан  h1 и выведен в другом месте {
<p>Параграф 1</p>
<p>Параграф 2</p>
}


Постарался как смог подробно объяснить, нужно из the_content() вырезать и выводить его в другом месте, а сам the_content() оставить там же где и был, но уже без h1 заголовка.
  • Вопрос задан
  • 992 просмотра
Пригласить эксперта
Ответы на вопрос 2
@zRrr
Похоже, тебе нужно вот это(чтобы было понятней, посмотри примеры использования функции снизу)
С помощью этой функции вполне можно вырезать html теги.
Ответ написан
Комментировать
@AndreyBLG Автор вопроса
Похоже я просто прогнал(
var_dump почему-то не показал теги в строке, но они там есть, поэтому регуляркой найти h1 можно.
$get_content = get_the_content();

if( $get_content ) {
	preg_match("/<h1>[a-zA-Z]*.*<\/h1>/", $get_content, $output_array);
	if( $output_array ) {
		echo $output_array[0];
	}else{
		echo "<h1>" . get_the_title() . "</h1>";
	};
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы