WordPress.org

Make WordPress Core

Ticket #44427: 44427.diff

File 44427.diff, 2.6 KB (added by spacedmonkey, 11 months ago)
  • src/wp-includes/media.php

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
     
    966966                        'class' => "attachment-$size_class size-$size_class",
    967967                        'alt'   => trim( strip_tags( get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ) ) ),
    968968                );
    969 
     969                if ( current_theme_supports( 'lazy-loading-images' ) ) {
     970                        $default_attr['loading'] = 'lazy';
     971        }
    970972                $attr = wp_parse_args( $attr, $default_attr );
    971973
    972974                // Generate 'srcset' and 'sizes' if not already present.
     
    15281530        return $image;
    15291531}
    15301532
     1533/**
     1534 * Filters 'img' elements in post content to add 'loading' attributes.
     1535 *
     1536 * @param string $content The raw post content to be filtered.
     1537 *
     1538 * @since 5.x.x
     1539 *
     1540 * @return string Converted content with 'loading' attributes added to images.
     1541 * @see   wp_tag_add_lazy_load()
     1542 *
     1543 */
     1544function wp_make_content_images_lazy( $content ) {
     1545        if ( current_theme_supports( 'lazy-loading-images' ) ) {
     1546                $content = wp_tag_add_lazy_load( $content, 'img' );
     1547        }
     1548
     1549        return $content;
     1550}
     1551
     1552
     1553/**
     1554 * Filters html tag elements in post content to add 'loading' attributes.
     1555 *
     1556 * @param string $content The raw post content to be filtered.
     1557 * @param string $tag     The html tag to scan and replace with loading attribute. Default: img
     1558 *
     1559 * @since 5.x.x
     1560 *
     1561 * @return string Converted content with 'loading' attributes added to images.
     1562 */
     1563function wp_tag_add_lazy_load( $content, $tag = 'img' ) {
     1564        if ( ! preg_match_all( '/<' . $tag . ' [^>]+>/', $content, $matches ) ) {
     1565                return $content;
     1566        }
     1567
     1568        $images = array_shift( $matches );
     1569
     1570        foreach ( $images as $image ) {
     1571                if ( false === strpos( $image, ' loading=' ) ) {
     1572                        $lazy_image = str_replace( '<' . $tag . ' ', '<' . $tag . ' loading="lazy" ', $image );
     1573                        $content    = str_replace( $image, $lazy_image, $content );
     1574                }
     1575        }
     1576
     1577        return $content;
     1578}
     1579
    15311580/**
    15321581 * Adds a 'wp-post-image' class to post thumbnails. Internal use only.
    15331582 *
  • src/wp-includes/pluggable.php

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
     
    25612561                        'extra_attr'    => '',
    25622562                );
    25632563
     2564                if ( current_theme_supports( 'lazy-loading-images' ) ) {
     2565                        $defaults['loading'] = 'lazy';
     2566                }
     2567
    25642568                if ( empty( $args ) ) {
    25652569                        $args = array();
    25662570                }