wp_get_duotone_filter_svg

The timeline below displays how wordpress function wp_get_duotone_filter_svg has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.3

/**
 * Returns the duotone filter SVG string for the preset.
 *
 * @since 5.9.1
 * @deprecated 6.3.0
 *
 * @access private
 *
 * @param array $preset Duotone preset value as seen in theme.json.
 * @return string Duotone SVG filter.
 */
function wp_get_duotone_filter_svg($preset)
{
    _deprecated_function(__FUNCTION__, '6.3.0');
    return WP_Duotone::get_filter_svg_from_preset($preset);
}

WordPress Version: 6.2

/**
 * Returns the duotone filter SVG string for the preset.
 *
 * @since 5.9.1
 * @access private
 *
 * @param array $preset Duotone preset value as seen in theme.json.
 * @return string Duotone SVG filter.
 */
function wp_get_duotone_filter_svg($preset)
{
    $filter_id = wp_get_duotone_filter_id($preset);
    $duotone_values = array('r' => array(), 'g' => array(), 'b' => array(), 'a' => array());
    if (!isset($preset['colors']) || !is_array($preset['colors'])) {
        $preset['colors'] = array();
    }
    foreach ($preset['colors'] as $color_str) {
        $color = wp_tinycolor_string_to_rgb($color_str);
        $duotone_values['r'][] = $color['r'] / 255;
        $duotone_values['g'][] = $color['g'] / 255;
        $duotone_values['b'][] = $color['b'] / 255;
        $duotone_values['a'][] = $color['a'];
    }
    ob_start();
    ?>

	<svg
		xmlns="http://www.w3.org/2000/svg"
		viewBox="0 0 0 0"
		width="0"
		height="0"
		focusable="false"
		role="none"
		style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;"
	>
		<defs>
			<filter id="<?php 
    echo esc_attr($filter_id);
    ?>">
				<feColorMatrix
					color-interpolation-filters="sRGB"
					type="matrix"
					values="
						.299 .587 .114 0 0
						.299 .587 .114 0 0
						.299 .587 .114 0 0
						.299 .587 .114 0 0
					"
				/>
				<feComponentTransfer color-interpolation-filters="sRGB" >
					<feFuncR type="table" tableValues="<?php 
    echo esc_attr(implode(' ', $duotone_values['r']));
    ?>" />
					<feFuncG type="table" tableValues="<?php 
    echo esc_attr(implode(' ', $duotone_values['g']));
    ?>" />
					<feFuncB type="table" tableValues="<?php 
    echo esc_attr(implode(' ', $duotone_values['b']));
    ?>" />
					<feFuncA type="table" tableValues="<?php 
    echo esc_attr(implode(' ', $duotone_values['a']));
    ?>" />
				</feComponentTransfer>
				<feComposite in2="SourceGraphic" operator="in" />
			</filter>
		</defs>
	</svg>

	<?php 
    $svg = ob_get_clean();
    if (!SCRIPT_DEBUG) {
        // Clean up the whitespace.
        $svg = preg_replace("/[\r\n\t ]+/", ' ', $svg);
        $svg = str_replace('> <', '><', $svg);
        $svg = trim($svg);
    }
    return $svg;
}

WordPress Version: 6.1

/**
 * Returns the duotone filter SVG string for the preset.
 *
 * @since 5.9.1
 * @access private
 *
 * @param array $preset Duotone preset value as seen in theme.json.
 * @return string Duotone SVG filter.
 */
function wp_get_duotone_filter_svg($preset)
{
    $filter_id = wp_get_duotone_filter_id($preset);
    $duotone_values = array('r' => array(), 'g' => array(), 'b' => array(), 'a' => array());
    if (!isset($preset['colors']) || !is_array($preset['colors'])) {
        $preset['colors'] = array();
    }
    foreach ($preset['colors'] as $color_str) {
        $color = wp_tinycolor_string_to_rgb($color_str);
        $duotone_values['r'][] = $color['r'] / 255;
        $duotone_values['g'][] = $color['g'] / 255;
        $duotone_values['b'][] = $color['b'] / 255;
        $duotone_values['a'][] = $color['a'];
    }
    ob_start();
    ?>

	<svg
		xmlns="http://www.w3.org/2000/svg"
		viewBox="0 0 0 0"
		width="0"
		height="0"
		focusable="false"
		role="none"
		style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;"
	>
		<defs>
			<filter id="<?php 
    echo esc_attr($filter_id);
    ?>">
				<feColorMatrix
					color-interpolation-filters="sRGB"
					type="matrix"
					values="
						.299 .587 .114 0 0
						.299 .587 .114 0 0
						.299 .587 .114 0 0
						.299 .587 .114 0 0
					"
				/>
				<feComponentTransfer color-interpolation-filters="sRGB" >
					<feFuncR type="table" tableValues="<?php 
    echo esc_attr(implode(' ', $duotone_values['r']));
    ?>" />
					<feFuncG type="table" tableValues="<?php 
    echo esc_attr(implode(' ', $duotone_values['g']));
    ?>" />
					<feFuncB type="table" tableValues="<?php 
    echo esc_attr(implode(' ', $duotone_values['b']));
    ?>" />
					<feFuncA type="table" tableValues="<?php 
    echo esc_attr(implode(' ', $duotone_values['a']));
    ?>" />
				</feComponentTransfer>
				<feComposite in2="SourceGraphic" operator="in" />
			</filter>
		</defs>
	</svg>

	<?php 
    $svg = ob_get_clean();
    if (!defined('SCRIPT_DEBUG') || !SCRIPT_DEBUG) {
        // Clean up the whitespace.
        $svg = preg_replace("/[\r\n\t ]+/", ' ', $svg);
        $svg = str_replace('> <', '><', $svg);
        $svg = trim($svg);
    }
    return $svg;
}

WordPress Version: 9.1

/**
 * Returns the duotone filter SVG string for the preset.
 *
 * @since 5.9.1
 * @access private
 *
 * @param array $preset Duotone preset value as seen in theme.json.
 * @return string Duotone SVG filter.
 */
function wp_get_duotone_filter_svg($preset)
{
    $filter_id = wp_get_duotone_filter_id($preset);
    $duotone_values = array('r' => array(), 'g' => array(), 'b' => array(), 'a' => array());
    if (!isset($preset['colors']) || !is_array($preset['colors'])) {
        $preset['colors'] = array();
    }
    foreach ($preset['colors'] as $color_str) {
        $color = wp_tinycolor_string_to_rgb($color_str);
        $duotone_values['r'][] = $color['r'] / 255;
        $duotone_values['g'][] = $color['g'] / 255;
        $duotone_values['b'][] = $color['b'] / 255;
        $duotone_values['a'][] = $color['a'];
    }
    ob_start();
    ?>

	<svg
		xmlns="http://www.w3.org/2000/svg"
		viewBox="0 0 0 0"
		width="0"
		height="0"
		focusable="false"
		role="none"
		style="visibility: hidden; position: absolute; left: -9999px; overflow: hidden;"
	>
		<defs>
			<filter id="<?php 
    echo esc_attr($filter_id);
    ?>">
				<feColorMatrix
					color-interpolation-filters="sRGB"
					type="matrix"
					values="
						.299 .587 .114 0 0
						.299 .587 .114 0 0
						.299 .587 .114 0 0
						.299 .587 .114 0 0
					"
				/>
				<feComponentTransfer color-interpolation-filters="sRGB" >
					<feFuncR type="table" tableValues="<?php 
    echo esc_attr(implode(' ', $duotone_values['r']));
    ?>" />
					<feFuncG type="table" tableValues="<?php 
    echo esc_attr(implode(' ', $duotone_values['g']));
    ?>" />
					<feFuncB type="table" tableValues="<?php 
    echo esc_attr(implode(' ', $duotone_values['b']));
    ?>" />
					<feFuncA type="table" tableValues="<?php 
    echo esc_attr(implode(' ', $duotone_values['a']));
    ?>" />
				</feComponentTransfer>
				<feComposite in2="SourceGraphic" operator="in" />
			</filter>
		</defs>
	</svg>

	<?php 
    $svg = ob_get_clean();
    if (!defined('SCRIPT_DEBUG') || !SCRIPT_DEBUG) {
        // Clean up the whitespace.
        $svg = preg_replace("/[\r\n\t ]+/", ' ', $svg);
        $svg = preg_replace('/> </', '><', $svg);
        $svg = trim($svg);
    }
    return $svg;
}