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

Опубликовано: 11.10.2017

В одном из недавних заказов у меня была задача — вырезать определенный контент из содержимого поста при его выводе на главной. Для подобных вещей в 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;'); ?>
rss