Как заменить данные в записях WordPress используя регулярные выражений в PHP

Admin WordPress Обсудить

Уже имеется заметка, как массово поменять текст в WordPress. В этой же статье разберу замену текста при выводе записей (the_content), а также использование регулярных выражений.

Замена текста с помощью PHP в записях WordPress

Разберем регулярные выражения на примере поиска и замены как самого текста, так и элементов внутри определенных дивов при выводе информации в WordPress .

Для удобства замены преобразуем вывод поста в переменную

Контент записи в WordPress выводится функцией:

the_content()

Положим содержимое функции вывода поста (the_content) в переменную $content:

$content = apply_filters( 'the_content', get_the_content() );

Теперь мы можем выводить содержимое поста таким образом:

echo $content;

Удаление данных с помощью preg_replace

Теперь для удаления данных со страницы записи WordPress используем такую конструкцию, которая изменит содержимое переменной $content. А именно найдет в данных нужный нам текст, структуру html и любое другое содержимое, а затем удалит её со страницы.

Удаление содержимого в конкретном див теге (с конкретным классом):

$content = preg_replace('/(<div.*?class="price"[^>]*>)(.*?)(<\/div>)/i', '$1$3', $content);

Удаление всего конкретного див тега:

$content = preg_replace('/(<div.*?class="price"[^>]*>)(.*?)(<\/div>)/i', '', $content);

Остальные примеры можно найти в статье про preg_replace.

Вывод данных с помощью preg_match

Вместо предыдущей функции preg_replace, где мы убираем текст, с помощью preg_match можно находить конкретные данные и сохранять их в переменную для последующего вывода.

preg_match("/<h2>(.*?)<\/h2>/s", $post->post_content, $matches);

где:

$post->post_content"

то, где мы ищем, в данном случае мы ищем информацию в записи WordPress страницы.

Когда мы нашли мы можем вывести эту запись в любом другом месте.

Вывод записи:

print($matches [0]);

Или даже сохранить в произвольное поле, содержимое которого также можем вывести в любом другом месте.

Больше примеров смотрите в статье о preg_match.

Привет. Ты находишься на моём сайте. Я разработчик. Здесь я делюсь своими наработками и знаниями. Спрашивай в комментариях, если тебе что-то не понятно или пиши, если есть что добавить.

Если вам пригодилась информация, вы можете поблагодарить автора сайта символическим пожертвованием:

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи: "Как заменить данные в записях WordPress используя регулярные выражений в PHP"
Если вам нужно добавить участок кода ставьте его между тегами <code></code>