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 шт):
Вообще-то бороться со стилями, добавленными 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 и не изменяет вывод других изображений.