Skip to content

Instantly share code, notes, and snippets.

@Lego2012
Created January 11, 2025 08:08
Show Gist options
  • Select an option

  • Save Lego2012/51085b1355b2ddc4754dabd65bb1d0fd to your computer and use it in GitHub Desktop.

Select an option

Save Lego2012/51085b1355b2ddc4754dabd65bb1d0fd to your computer and use it in GitHub Desktop.
add_filter("the_content", "add_image_dimensions");
function add_image_dimensions($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)
);
$image_tag = sprintf(
'<img src=%s%s%s%s%s width="%d" height="%d" />',
$src,
$alt,
$title,
$class,
$id,
$width,
$height
);
$content = str_replace($image, $image_tag, $content);
}
}
return $content;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment