Как удалить жестко заданные размеры миниатюр изображений?
Как можно удалить атрибуты width и height из миниатюры записи при вставке с помощью <?php the_post_thumbnail(); ?>
?
<img width="800" height="533" src="http://domain.com/wp-content/uploads/2011/02/image.jpg" class="attachment-post-thumbnail wp-post-image" />

Похожие темы: Фильтр для удаления атрибутов размеров изображений?
Существует фильтр post_thumbnail_html
, который получает в качестве аргумента полный HTML-элемент, представляющий миниатюру записи перед её выводом на страницу. Вы можете удалить размеры с помощью регулярного выражения:
add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10, 3 );
function remove_thumbnail_dimensions( $html, $post_id, $post_image_id ) {
$html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
return $html;
}

У меня не работает. add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10, 3 );
function remove_thumbnail_dimensions( $html, $post_id, $post_image_id ) {
if ( wp_is_mobile() ) {
$html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
}
return $html;
}

add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10 );
add_filter( 'image_send_to_editor', 'remove_thumbnail_dimensions', 10 );
add_filter( 'the_content', 'remove_thumbnail_dimensions', 10 );
function remove_thumbnail_dimensions( $html ) {
$html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
return $html;
}
Этот код выполнит задачу, фильтр "the_content" удалит все атрибуты ширины и высоты у изображений в контенте поста.

Я предпочитаю это решение, так как оно не предполагает глобальную замену с помощью функции. Этот код можно добавить в файлы вашей темы.
<?php echo preg_replace( '/(width|height)="\d*"/', '', get_the_post_thumbnail( get_the_ID(), 'large' ) ); ?>
Вы можете заменить "large" на "thumbnail", "medium", "full" или ваш пользовательский размер изображения, объявленный в теме.
