| @@ -815,8 +815,11 @@ | ||
| 815 | 815 | 'lazy_images' => ! empty( $r['lazyload'] ), |
| 816 | 816 | 'lazy_iframes' => ! empty( $r['lazyload_iframes'] ), |
| 817 | 817 | 'lazy_videos' => ! empty( $r['lazyload_youtube'] ), |
| 818 | 818 | ); |
| 819 | + if ( ! empty( $r['lazyload_css_bg_img'] ) ) { | |
| 820 | + $patch['lazy']['lazy_background_images'] = true; | |
| 821 | + } | |
| 819 | 822 | |
| 820 | 823 | // Separate Mobile Cache — do NOT import this as ON. WP Rocket's |
| 821 | 824 | // "separate cache files for mobile" is frequently left on by habit even |
| 822 | 825 | // when the site serves identical HTML to every device, and xSpeed's |
| @@ -837,8 +840,19 @@ | ||
| 837 | 840 | $patch['preloader']['sitemap_urls'] = array_values( array_filter( array_map( 'strval', $r['sitemap_preload_url'] ) ) ); |
| 838 | 841 | } |
| 839 | 842 | } |
| 840 | 843 | |
| 844 | + // Bloat — WP Rocket's "Disable Emoji" and "Disable WordPress embeds". | |
| 845 | + $bloat = array_filter( | |
| 846 | + array( | |
| 847 | + 'disable_emojis' => ! empty( $r['emoji'] ), | |
| 848 | + 'disable_oembed' => ! empty( $r['embeds'] ), | |
| 849 | + ) | |
| 850 | + ); | |
| 851 | + if ( $bloat ) { | |
| 852 | + $patch['bloat'] = $bloat; | |
| 853 | + } | |
| 854 | + | |
| 841 | 855 | // CDN — WP Rocket stores CDN hosts in cdn_cnames (array). |
| 842 | 856 | if ( ! empty( $r['cdn'] ) && ! empty( $r['cdn_cnames'] ) && is_array( $r['cdn_cnames'] ) ) { |
| 843 | 857 | $first = (string) ( $r['cdn_cnames'][0] ?? '' ); |
| 844 | 858 | if ( '' !== $first ) { |
| @@ -1472,15 +1486,14 @@ | ||
| 1472 | 1486 | $patch['fonts'] = array( 'font_display_swap' => true ); |
| 1473 | 1487 | } |
| 1474 | 1488 | |
| 1475 | 1489 | // ── Disable bloat ───────────────────────────────────────────── |
| 1476 | - // Only map the one LiteSpeed "remove" toggle with a clean xSpeed | |
| 1477 | - // equivalent: removing the emoji + oEmbed scripts ≈ disable_oembed. | |
| 1478 | - // (LiteSpeed's optm-emoji_rm strips the wp-emoji + wp-embed pair.) | |
| 1479 | - // jQuery-migrate / dashicons / XML-RPC / RSS / REST aren't | |
| 1480 | - // LiteSpeed-managed, so we don't guess at them. | |
| 1490 | + // optm-emoji_rm is LiteSpeed's only bloat toggle. It used to map to | |
| 1491 | + // disable_oembed, which turned oEmbed off unasked and left emojis on | |
| 1492 | + // (#217, #532). jQuery-migrate / dashicons / XML-RPC / RSS / REST | |
| 1493 | + // aren't LiteSpeed-managed, so we don't guess at them. | |
| 1481 | 1494 | if ( $on( 'optm-emoji_rm' ) ) { |
| 1482 | - $patch['bloat'] = array( 'disable_oembed' => true ); | |
| 1495 | + $patch['bloat'] = array( 'disable_emojis' => true ); | |
| 1483 | 1496 | } |
| 1484 | 1497 | |
| 1485 | 1498 | // ── Browser cache (LiteSpeed: cache-browser) ────────────────── |
| 1486 | 1499 | if ( $on( 'cache-browser' ) ) { |