function ventures_get_svg( $path = '' ) {
if ( empty( $path ) ) {
return;
}
$path_info = pathinfo( $path );
if ( 'svg' !== $path_info['extension'] ) {
return;
}
$svg = file_get_contents( $path, true );
if ( empty( $svg ) ) {
return;
}
// Remove XML
$xml = new DOMDocument();
$xml->loadXML( $svg );
return $xml->saveXML( $xml->documentElement ); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
}
function ventures_the_svg( $path = '' ) {
if ( empty( $path ) ) {
return;
}
echo wp_kses( ventures_get_svg( $path ), ventures_get_kses_svg_ruleset() );
}
Ruleset
function ventures_get_kses_svg_ruleset() {
$kses_defaults = wp_kses_allowed_html( 'post' );
$svg_args = [
'svg' => [
'class' => true,
'aria-hidden' => true,
'aria-labelledby' => true,
'role' => true,
'xmlns' => true,
'width' => true,
'height' => true,
'viewbox' => true,
],
'g' => [
'fill' => true,
],
'path' => [
'd' => true,
'fill' => true,
],
];
return array_merge( $kses_defaults, $svg_args );
}