75 lines
1.9 KiB
PHP
75 lines
1.9 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* Twenty Twenty SVG Icon helper functions
|
||
|
*
|
||
|
* @package WordPress
|
||
|
* @subpackage Twenty_Twenty
|
||
|
* @since Twenty Twenty 1.0
|
||
|
*/
|
||
|
|
||
|
if ( ! function_exists( 'twentytwenty_the_theme_svg' ) ) {
|
||
|
/**
|
||
|
* Output and Get Theme SVG.
|
||
|
* Output and get the SVG markup for an icon in the TwentyTwenty_SVG_Icons class.
|
||
|
*
|
||
|
* @since Twenty Twenty 1.0
|
||
|
*
|
||
|
* @param string $svg_name The name of the icon.
|
||
|
* @param string $group The group the icon belongs to.
|
||
|
* @param string $color Color code.
|
||
|
*/
|
||
|
function twentytwenty_the_theme_svg( $svg_name, $group = 'ui', $color = '' ) {
|
||
|
echo twentytwenty_get_theme_svg( $svg_name, $group, $color ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Escaped in twentytwenty_get_theme_svg().
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if ( ! function_exists( 'twentytwenty_get_theme_svg' ) ) {
|
||
|
|
||
|
/**
|
||
|
* Get information about the SVG icon.
|
||
|
*
|
||
|
* @since Twenty Twenty 1.0
|
||
|
*
|
||
|
* @param string $svg_name The name of the icon.
|
||
|
* @param string $group The group the icon belongs to.
|
||
|
* @param string $color Color code.
|
||
|
*/
|
||
|
function twentytwenty_get_theme_svg( $svg_name, $group = 'ui', $color = '' ) {
|
||
|
|
||
|
// Make sure that only our allowed tags and attributes are included.
|
||
|
$svg = wp_kses(
|
||
|
TwentyTwenty_SVG_Icons::get_svg( $svg_name, $group, $color ),
|
||
|
array(
|
||
|
'svg' => array(
|
||
|
'class' => true,
|
||
|
'xmlns' => true,
|
||
|
'width' => true,
|
||
|
'height' => true,
|
||
|
'viewbox' => true,
|
||
|
'aria-hidden' => true,
|
||
|
'role' => true,
|
||
|
'focusable' => true,
|
||
|
),
|
||
|
'path' => array(
|
||
|
'fill' => true,
|
||
|
'fill-rule' => true,
|
||
|
'd' => true,
|
||
|
'transform' => true,
|
||
|
),
|
||
|
'polygon' => array(
|
||
|
'fill' => true,
|
||
|
'fill-rule' => true,
|
||
|
'points' => true,
|
||
|
'transform' => true,
|
||
|
'focusable' => true,
|
||
|
),
|
||
|
)
|
||
|
);
|
||
|
|
||
|
if ( ! $svg ) {
|
||
|
return false;
|
||
|
}
|
||
|
return $svg;
|
||
|
}
|
||
|
}
|