astra_icon_selector_svg( array $icon, bool $echo = false, string $default = '' )
Renders an SVG icon for SVG Icon Selector Control.
Description
Parameters
- $icon
-
(array) (Required) The icon to be rendered. Contains type and value keys.
- $echo
-
(bool) (Optional) Whether to echo the SVG markup directly or return it.
Default value: false
- $default
-
(string) (Optional) The default icon to use if no icon is provided.
Default value: ''
Return
(string|null) The SVG icon markup or null if SVG icons are not enabled or no icon is provided.
Source
File: classes/astra-common-functions.php
function astra_icon_selector_svg( $icon, $echo = false, $default = '' ) {
// Bail early if SVG icons are not enabled.
if ( ! Astra_Icons::is_svg_icons() || ! $icon ) {
return $echo ? null : '';
}
$svg = '';
$classes = array( 'ast-icon' );
if ( isset( $icon['type'], $icon['value'] ) ) {
$type = $icon['type'];
$value = $icon['value'];
if ( $type === 'custom' ) {
$svg = do_shortcode( $value );
$classes[] = 'icon-' . $type;
} elseif ( $type !== 'none' && is_callable( 'Astra_Builder_UI_Controller::fetch_svg_icon' ) ) {
$svg = Astra_Builder_UI_Controller::fetch_svg_icon( $value );
$classes[] = 'icon-' . $value;
}
}
if ( ! $svg && $default && is_callable( 'Astra_Builder_UI_Controller::fetch_svg_icon' ) ) {
$svg = Astra_Builder_UI_Controller::fetch_svg_icon( $default );
}
if ( $svg ) {
$svg = sprintf(
'<span class="%1$s">%2$s</span>',
implode( ' ', $classes ),
$svg
);
}
if ( $echo !== true ) {
return wp_kses( $svg, Astra_Addon_Kses::astra_addon_svg_kses_protocols() );
}
echo wp_kses( $svg, Astra_Addon_Kses::astra_addon_svg_kses_protocols() );
}
Expand full source code Collapse full source code View on Trac
Changelog
| Version | Description |
|---|---|
| 4.10.0 | Introduced. |