@xonar
А смысл?

Как задать класс изображениям внутри записи на Wordpress?

Всем доброго дня.

Подскажите решение по проблеме. Как задать класс всем изображениям, которые находятся внутри записи?

Нужно именно img задать класс.

<figure class="wp-block-image size-large">
<img src="https://66.media.tumblr.com/e852a06b7e1fbf228dc52b996720c0b3/tumblr_pw9s3vrBoG1utlor0o1_1280.jpg" alt="" class="">
</figure>


Можно задать вручную конечно, но нужно именно чтоб по дефолту прописывался класс.
  • Вопрос задан
  • 598 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Самый простой способ - на хуке the_content обычной заменой или регуляркой, но это если у картинок всегда одна структура (например, мы точно знаем что тег будет <img src="..." class="..." ...). Но вообще парсить html регулярками не самая светлая мысль - для этого есть DOMDocument:
function add_class_to_images( $content )
{
    $document = new DOMDocument();
    libxml_use_internal_errors(true); // чтобы не ругался на семантические HTML5 теги
    $document->loadHTML( $content );
    libxml_clear_errors();

    $images = $document->getElementsByTagName( 'img' );

    /** @var \DOMElement $image */
    foreach ( $images as $image ) {
        $image->setAttribute( 
            'class', 
            $image->getAttribute( 'class' ) . ' my-new-class'
        );
    }

    return $document->saveHTML();
}
add_filter( 'the_content', 'add_class_to_images' );
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 11:14
65000 руб./за проект
19 апр. 2024, в 11:08
5000 руб./за проект
19 апр. 2024, в 10:59
150000 руб./за проект