Skip to:
Content

BuddyPress.org

Ticket #8340: 8340.03.patch

File 8340.03.patch, 5.3 KB (added by r-a-y, 4 years ago)
  • src/bp-activity/bp-activity-embeds.php

     
    267267                        $float_width = 350;
    268268
    269269                        // Set up thumb.
    270                         $content = sprintf( '<div class="thumb" style="max-width:%1$spx">%2$s<a href="%3$s" rel="nofollow" onclick="top.location.href=\'%3$s\'"><img src="%4$s" alt="" /></a></div>', $thumb_width, $play_icon, esc_url( $url ), esc_url( $thumbnail ) );
     270                        $content = sprintf( '<div class="thumb" style="max-width:%1$spx">%2$s<a href="%3$s" rel="nofollow" onclick="top.location.href=\'%3$s\'"><img loading="lazy" src="%4$s" alt="" /></a></div>', $thumb_width, $play_icon, esc_url( $url ), esc_url( $thumbnail ) );
    271271
    272272                        // Show title.
    273273                        if ( isset( $oembed->title ) ) {
  • src/bp-activity/bp-activity-filters.php

     
    9393add_filter( 'bp_get_activity_latest_update_excerpt', 'bp_activity_make_nofollow_filter' );
    9494add_filter( 'bp_get_activity_feed_item_description', 'bp_activity_make_nofollow_filter' );
    9595
     96add_filter( 'bp_get_activity_content_body', 'bp_core_add_loading_lazy_attribute' );
     97add_filter( 'bp_activity_comment_content',  'bp_core_add_loading_lazy_attribute' );
     98
    9699add_filter( 'pre_comment_content',                   'bp_activity_at_name_filter' );
    97100add_filter( 'the_content',                           'bp_activity_at_name_filter' );
    98101add_filter( 'bp_activity_get_embed_excerpt',         'bp_activity_at_name_filter' );
  • src/bp-core/bp-core-filters.php

     
    5959add_filter( 'bp_email_set_content_plaintext', 'wp_strip_all_tags', 6 );
    6060add_filter( 'bp_email_set_subject', 'sanitize_text_field', 6 );
    6161
     62// Avatars.
     63add_filter( 'bp_core_fetch_avatar', 'bp_core_add_loading_lazy_attribute' );
     64
    6265/**
    6366 * Template Compatibility.
    6467 *
     
    899902        return $edit_link;
    900903}
    901904
     905/**
     906 * Add 'loading="lazy"' attribute into images and iframes.
     907 *
     908 * @since 7.0.0
     909 *
     910 * @string $content Content to inject attribute into.
     911 * @return string
     912 */
     913function bp_core_add_loading_lazy_attribute( $content = '' ) {
     914        if ( false === strpos( $content, '<img ' ) && false === strpos( $content, '<iframe ' ) ) {
     915                return $content;
     916        }
     917
     918        $content = str_replace( '<img ',    '<img loading="lazy" ',    $content );
     919        $content = str_replace( '<iframe ', '<iframe loading="lazy" ', $content );
     920
     921        // WordPress posts need their position absolute removed for lazyloading.
     922        $find_pos_absolute = ' style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" ';
     923        if ( false !== strpos( $content, 'data-secret=' ) && false !== strpos( $content, $find_pos_absolute ) ) {
     924                $content = str_replace( $find_pos_absolute, '', $content );
     925        }
     926
     927        return $content;
     928}
     929
    902930/**
    903931 * Should BuddyPress load the mentions scripts and related assets, including results to prime the
    904932 * mentions suggestions?
  • src/bp-groups/bp-groups-blocks.php

     
    110110                $avatar_container = sprintf(
    111111                        '<div class="item-header-avatar">
    112112                                <a href="%1$s">
    113                                         <img src="%2$s" alt="%3$s" class="avatar">
     113                                        <img loading="lazy" src="%2$s" alt="%3$s" class="avatar">
    114114                                </a>
    115115                        </div>',
    116116                        esc_url( $group_link ),
  • src/bp-groups/classes/class-bp-groups-component.php

     
    892892                                ) );
    893893
    894894                                if ( empty( $bp->bp_options_avatar ) ) {
    895                                         $bp->bp_options_avatar = '<img src="' . esc_url( bp_core_avatar_default_thumb() ) . '" alt="' . esc_attr__( 'No Group Profile Photo', 'buddypress' ) . '" class="avatar" />';
     895                                        $bp->bp_options_avatar = '<img loading="lazy" src="' . esc_url( bp_core_avatar_default_thumb() ) . '" alt="' . esc_attr__( 'No Group Profile Photo', 'buddypress' ) . '" class="avatar" />';
    896896                                }
    897897                        }
    898898                }
  • src/bp-members/bp-members-blocks.php

     
    106106                $avatar_container = sprintf(
    107107                        '<div class="item-header-avatar">
    108108                                <a href="%1$s">
    109                                         <img src="%2$s" alt="%3$s" class="avatar">
     109                                        <img loading="lazy" src="%2$s" alt="%3$s" class="avatar">
    110110                                </a>
    111111                        </div>',
    112112                        esc_url( $member_link ),
  • src/bp-messages/bp-messages-filters.php

     
    7979add_filter( 'bp_get_the_thread_subject',              'stripslashes_deep'    );
    8080add_filter( 'bp_get_message_thread_content',          'stripslashes_deep', 1 );
    8181
     82add_filter( 'bp_get_the_thread_message_content', 'bp_core_add_loading_lazy_attribute' );
     83
    8284// Personal data export.
    8385add_filter( 'wp_privacy_personal_data_exporters', 'bp_messages_register_personal_data_exporter' );
    8486