prodavecmacdonalds
@prodavecmacdonalds
коммуницирую

Как программно заменить тег в поле(body) материала?

Есть материал с полем(body) редактируемом в CCK, соответственно оно может содержать заголовок обернутый в тег h2. Необходимо заменить h2 на другой тег, например span, дабы не мешался роботу. Руками делать не вариант(мало того, что материалов достаточно много, так и необходимы заголовки в том виде в котором присутствуют на данный момент)
  • Вопрос задан
  • 255 просмотров
Решения вопроса 1
UksusoFF
@UksusoFF
Для того чтобы в новых материалах не появлялись такие теги:
<?php
function MODULE_NAME_node_presave($node) {
   $regex   = '#<h[1-6]>(.*?)</h[1-6]>#s';
   $replace = '<span class="headers">$1</span>';
   $body    = &$node->body['und'][0]['value'];
   $body    = preg_replace($regex, $replace, $body);
}
?>

Затем или scanner'ом заменить уже те что есть.
Или через VBO пересохранить все статьи, тогда сработает хук что выше.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
regexp
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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