WordPress Version: 6.3
/**
* Default custom background callback.
*
* @since 3.0.0
*/
function _custom_background_cb()
{
// $background is the saved custom image, or the default image.
$background = set_url_scheme(get_background_image());
/*
* $color is the saved custom color.
* A default has to be specified in style.css. It will not be printed here.
*/
$color = get_background_color();
if (get_theme_support('custom-background', 'default-color') === $color) {
$color = false;
}
$type_attr = current_theme_supports('html5', 'style') ? '' : ' type="text/css"';
if (!$background && !$color) {
if (is_customize_preview()) {
printf('<style%s id="custom-background-css"></style>', $type_attr);
}
return;
}
$style = $color ? "background-color: #{$color};" : '';
if ($background) {
$image = ' background-image: url("' . sanitize_url($background) . '");';
// Background Position.
$position_x = get_theme_mod('background_position_x', get_theme_support('custom-background', 'default-position-x'));
$position_y = get_theme_mod('background_position_y', get_theme_support('custom-background', 'default-position-y'));
if (!in_array($position_x, array('left', 'center', 'right'), true)) {
$position_x = 'left';
}
if (!in_array($position_y, array('top', 'center', 'bottom'), true)) {
$position_y = 'top';
}
$position = " background-position: {$position_x} {$position_y};";
// Background Size.
$size = get_theme_mod('background_size', get_theme_support('custom-background', 'default-size'));
if (!in_array($size, array('auto', 'contain', 'cover'), true)) {
$size = 'auto';
}
$size = " background-size: {$size};";
// Background Repeat.
$repeat = get_theme_mod('background_repeat', get_theme_support('custom-background', 'default-repeat'));
if (!in_array($repeat, array('repeat-x', 'repeat-y', 'repeat', 'no-repeat'), true)) {
$repeat = 'repeat';
}
$repeat = " background-repeat: {$repeat};";
// Background Scroll.
$attachment = get_theme_mod('background_attachment', get_theme_support('custom-background', 'default-attachment'));
if ('fixed' !== $attachment) {
$attachment = 'scroll';
}
$attachment = " background-attachment: {$attachment};";
$style .= $image . $position . $size . $repeat . $attachment;
}
?>
<style<?php
echo $type_attr;
?> id="custom-background-css">
body.custom-background { <?php
echo trim($style);
?> }
</style>
<?php
}