Изменение html разметки элементов поста в WordPress
Как сделать так, чтобы к примеру в мой теме для wordpress была возможность обернуть все img из поста в div или добавить дополнительный класс к элементу?
К примеру wp выводит в html картинку поста по умолчанию вот так:
<figure> <a href="link_url"><img class="aligncenter" src="img_url" alt=""></a> </figure>
А мне нужно добавить к картинке еще один класс или обернуть ее в другой элемент
<div> <a href="link_url"><img class="aligncenter my_class" src="img_url" alt=""></a> </div>
Заранее спасибо!
Обертку - можно заменить на div. Она отключается.
Вас интересует замена в галереи ? или во всех изображениях, что есть в посте ?
вообще замена вывода любого контента из поста будь то html код картинки или просто h1 заголовка
В регулярных выражениях не силен, но вот пример из плагина Auto Highslide:
/* Add HighSlide Image Code */ add_filter('the_content', 'addhighslideclass_replace'); function addhighslideclass_replace ($content) { global $post; $pattern = "/<a(.*?)href=('|\")([^>]*).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>(.*?)<\/a>/i"; $replacement = '<a$1href=$2$3.$4$5 class="highslide-image" onclick="return hs.expand(this);"$6>$7</a>'; $content = preg_replace($pattern, $replacement, $content); return $content; }Если картинка обернута ссылкой, то к ссылке добавляется класс highslide-image.
Я Вам дал начало - дальше можете глубже "копать".
те только через прогонку всего контента через герулярку?
что то я сомневаюсь в том что это решение без кеширования будет производительно работать, неужели в wp нет другого способа?
Если "поднапрячься" и подумать, то поймете что не только в WP, но и в других системах другого способа нет.
А как Вы себе представляете фильтр данных, что лежит в БД ?
Что не напрягать фронтенд - можно регулярку использовать при сохранение поста, то есть в админки.
Фильтр (хук) - save_post