Автоматическое прописывание высоты и ширины (width и height) всем картинкам в статьях WordPress
Доброго времени суток!
Статьи без картинок в наше время встречаются редко. И в WordPress, естественно, возможность вставки картинок присутствует. И некоторые пользователи при написании статей осуществляли вставку картинок, а теги высоты и ширины не прописывали. Это не было нужно, т.к. зачастую при данном подходе картинки отображаются довольно неплохо.
Но необходимость в прописывании всем картинкам ширины и высоты (width и height) может возникнуть по разным причинам. И если статей много, то ручное прописывание займёт очень много времени и сил.
К счастью, существует код, который позволит это сделать в автоматическом режиме. Его мы и рассмотрим далее.
Указание высоты и ширины (width и height) всем картинкам сразу в статьях на сайте WordPress
Данный код необходимо прописать в файл functions.php используемой темы.
add_filter( 'the_content', 'image_dimensions_add' ); function image_dimensions_add( $content ) { preg_match_all( '/<img[^>]+>/i', $content, $images); if (count($images) < 1) return $content; foreach ($images[0] as $image) { preg_match_all( '/(alt|title|src|width|class|id|height)=("[^"]*")/i', $image, $img ); if ( !in_array( 'src', $img[1] ) ) continue; if ( !in_array( 'width', $img[1] ) || !in_array( 'height', $img[1] ) ) { $src = $img[2][ array_search('src', $img[1]) ]; $alt = in_array( 'alt', $img[1] ) ? ' alt=' . $img[2][ array_search('alt', $img[1]) ] : ''; $title = in_array( 'title', $img[1] ) ? ' title=' . $img[2][ array_search('title', $img[1]) ] : ''; $class = in_array( 'class', $img[1] ) ? ' class=' . $img[2][ array_search('class', $img[1]) ] : ''; $id = in_array( 'id', $img[1] ) ? ' id=' . $img[2][ array_search('id', $img[1]) ] : ''; list( $width, $height, $type, $attr ) = getimagesize( str_replace( "\"", "" , $src ) ); $html = ''; if (($width != 0) || ($height != 0)) { $html = ' width="%d" height="%d" '; } $image_tag = sprintf( '<img src=%s%s%s%s%s' . $html . '/>', $src, $alt, $title, $class, $id, $width, $height ); $content = str_replace($image, $image_tag, $content); } } return $content; }
Как работает код: он извлекает истинную ширину и высоту картинки, добавляет теги width и height и прописывает в них эти значения. Если у картинки уже прописаны ширина и высота, то код в этом случае не действует. Но если у картинки прописана только ширина или только высота, то код срабатывает.
Если вставленная картинка не найдена, то код также не срабатывает и ничего дополнительно не прописывает.
Стоит обратить внимание на вот какой нюанс: если приведённый код не срабатывает, то проверьте в настройках php (оные находятся в личном кабинете хостинга) задействовала ли опция allow_url_fopen. Если не знаете, где это можно посмотреть и при необходимости задействовать, то обратитесь в службу поддержки используемого вами хостинга.
Вот так можно быстро и полностью решить проблему с прописыванием картинкам ширины и высоты в статьях на WordPress сайте.