Guenni007 icon

replace-svg

Guenni007 | PRO | 09/27/21 06:26:26 PM UTC (Edited) | 0 ⭐ | 879 👁️ | Never ⏰ | []
PHP |

1.97 KB

|

None

|

0 👍

/

0 👎

<?php
 
 
// replace every svg with its inline code
function replace_img_if_svg_with_inline_svg() {
?>
<script type="text/javascript">
(function($) {
  $('img').filter(function() { return this.src.match(/.*\.svg$/); }).each(function(){
    var imgSVG    = $(this);
    var imgURL    = $(this).attr('src');
    var imgAlt    = $(this).attr('alt');
    var imgTitle  = $(this).attr('title');
    var imgClass  = $(this).attr('class');
    $.get(imgURL, function(data) {
    var svg = $(data).find('svg');
    // Remove invalid XML tags - but most svgs need that setting
     // svg = svg.removeAttr('xmlns xmlns:xlink');
    // add replaced image's alt tag to the inline SVG
    typeof imgAlt === 'undefined' || imgAlt === '' ?  (svg = svg.attr('alt', 'Replaced Image')) : (svg = svg.attr('alt', imgAlt)) ;
    // add replaced image's Title tag to the inline SVG
    typeof imgTitle === 'undefined' || imgTitle === '' ? (svg = svg.attr('title', 'A SVG Image replaced by its inline code')) : (svg = svg.attr('title', imgTitle));
    // Add replaced image's classes to the new SVG and add replaced-svg as new class
    typeof imgClass === 'undefined' || imgClass === '' ? (svg = svg.attr('class', 'replaced-svg')) : (svg = svg.attr('class', imgClass+' replaced-svg'));
    // check where the logo is placed : left or right or centered in the header
    if ($(imgSVG).parents('.logo').length && $('html').hasClass('html_logo_left')) {
      svg.attr('preserveAspectRatio', 'xMinYMid meet');
    };
    if ($(imgSVG).parents('.logo').length && $('html').hasClass('html_logo_right')) {
      svg.attr('preserveAspectRatio', 'xMaxYMid meet');
    };
    if ($(imgSVG).parents('.logo').length && $('html').hasClass('html_logo_center')) {
      svg.attr('preserveAspectRatio', 'xMidYMid meet');
    };
    // Replace image with inline SVG Code
        imgSVG.replaceWith(svg);
    }, 'xml');
});
})(jQuery);
</script>
<?php
} 
add_action('wp_footer', 'replace_img_if_svg_with_inline_svg');

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎