add_filter('wp_get_attachment_image_attributes', function ($attr, $attachment, $size) { // Only affect front-end pages if (is_admin()) { return $attr; } // Default fallback sizes $default_sizes = '(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1200px) 80vw, 1200px'; // Detect alignment classes to adjust sizes if (isset($attr['class'])) { if (preg_match('/align(full|wide|left|right)/', $attr['class'], $matches)) { switch ($matches[1]) { case 'full': $attr['sizes'] = '(max-width: 480px) 100vw, (max-width: 768px) 100vw, 1200px'; break; case 'wide': $attr['sizes'] = '(max-width: 480px) 100vw, (max-width: 768px) 95vw, 1100px'; break; default: $attr['sizes'] = '(max-width: 480px) 100vw, (max-width: 768px) 90vw, 800px'; break; } } else { $attr['sizes'] = $default_sizes; } } else { $attr['sizes'] = $default_sizes; } return $attr; }, 10, 3);

Gift this article