Главная WordPress

WordPress: возвращаем форматирование текста поста при использовании функции get_the_content ()

В одном из недавних заказов у меня была задача — вырезать определенный контент из содержимого поста при его выводе на главной. Для подобных вещей в WordPress предусмотрена функция get_the_content ().

Чтобы было понятно, о чем речь, приведу пример ее использования:

$content = get_the_content();
$content = preg_replace('/вырезаем какой-то кусок текста/i', '', $content);
echo $content; // выводим отфильтрованный контент.

Однако при этом есть один минус — в выводимом таким образом контенте отсутствуют HTML-теги, которые есть в оригинале поста, т. е. к примеру, исчезают отступы между абзацами.

Задача решается применением следующей функции (ее необходимо поместить в файл functions.php):

function get_the_content_with_formatting ($more_link_text = '') {
	$content = get_the_content($more_link_text);
	$content = apply_filters('the_content', $content);
	// тут какие-то манипуляции с переменной $content
	echo $content;
}

Ну, а в шаблоне вместо этого кода:

<?php the_content('Читать далее &raquo;'); ?>

использовать такой:

<?php get_the_content_with_formatting('Читать далее &raquo;'); ?>

Комментарии (1)

  1. Спасибо, полезный материал)

Ваш комментарий