WP Elementor. Плагин меняет размеры изображений

Есть несколько сайтов, которые работают на WP. В качестве редактора на них используется плагин Elementor. Стал замечать, что у изображений стал прописываться атрибут style с несколькими css св-вами, а конкретно width, height, max-width (пример: style="width: 100%;height:75%;max-width: 640px;"). В целом жить не мешает, но иногда очень раздражает. Особенно когда эти стили перекрывают те, которые я выставляю через визуальный редактор. Эмпирическим методом (путем поочередного включения/отключения плагинов) выяснилось, что за это ответственен Elementor. Эту проблему всегда можно решить, но хотелось бы знать, есть ли у Elementor настройка, хук или что-то еще, чем можно выключить этот функционал?

Или же если я ошибся в первоисточнике проблемы, подскажите, пожалуйста, что ее может вызывать и как это лечится?

UPD: Опытным путем выяснил, что описанную проблему вызывает не сам elementor, а его связка с темой twentytwentyone (стандартная тема wordpress). Что конкретно -- пока не нашел


Ответы (1 шт):

Автор решения: KAGG Design

Вообще-то бороться со стилями, добавленными WordPress, неправильно. Но если вам хочется это сделать, надо применить такой фильтр:

/**
 * Filters an img tag within the content for a given context.
 *
 * @since 6.0.0
 *
 * @param string $filtered_image Full img tag with attributes that will replace the source img tag.
 * @param string $context        Additional context, like the current filter name or the function name from where this was called.
 * @param int    $attachment_id  The image attachment ID. May be 0 in case the image is not an attachment.
 */
function my_wp_content_img_tag( $filtered_image, $context, $attachment_id ) {

    if ( $attachment_id !== 100 ) {
        return $filtered_image;
    }

    return preg_replace( '/width=".*?"|height=".*?"/', '', $filtered_image );
}

add_filter( 'wp_content_img_tag', 'my_wp_content_img_tag', 10, 3 );

Код протестирован на страницах, созданных Gutenberg и Elementor при включенном плагине Elementor. Он убирает width и height для изображения с id=100 и не изменяет вывод других изображений.

→ Ссылка