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('Читать далее »'); ?>
использовать такой:
<?php get_the_content_with_formatting('Читать далее »'); ?>
Комментарии (1)
Спасибо, полезный материал)