Custom_Background::take_action()

In this article

Executes custom background modification.

Source

public function take_action() {	if ( empty( $_POST ) ) {	return;	}	if ( isset( $_POST['reset-background'] ) ) {	check_admin_referer( 'custom-background-reset', '_wpnonce-custom-background-reset' );	remove_theme_mod( 'background_image' );	remove_theme_mod( 'background_image_thumb' );	$this->updated = true;	return;	}	if ( isset( $_POST['remove-background'] ) ) {	// @todo Uploaded files are not removed here.	check_admin_referer( 'custom-background-remove', '_wpnonce-custom-background-remove' );	set_theme_mod( 'background_image', '' );	set_theme_mod( 'background_image_thumb', '' );	$this->updated = true;	wp_safe_redirect( $_POST['_wp_http_referer'] );	return;	}	if ( isset( $_POST['background-preset'] ) ) {	check_admin_referer( 'custom-background' );	if ( in_array( $_POST['background-preset'], array( 'default', 'fill', 'fit', 'repeat', 'custom' ), true ) ) {	$preset = $_POST['background-preset'];	} else {	$preset = 'default';	}	set_theme_mod( 'background_preset', $preset );	}	if ( isset( $_POST['background-position'] ) ) {	check_admin_referer( 'custom-background' );	$position = explode( ' ', $_POST['background-position'] );	if ( in_array( $position[0], array( 'left', 'center', 'right' ), true ) ) {	$position_x = $position[0];	} else {	$position_x = 'left';	}	if ( in_array( $position[1], array( 'top', 'center', 'bottom' ), true ) ) {	$position_y = $position[1];	} else {	$position_y = 'top';	}	set_theme_mod( 'background_position_x', $position_x );	set_theme_mod( 'background_position_y', $position_y );	}	if ( isset( $_POST['background-size'] ) ) {	check_admin_referer( 'custom-background' );	if ( in_array( $_POST['background-size'], array( 'auto', 'contain', 'cover' ), true ) ) {	$size = $_POST['background-size'];	} else {	$size = 'auto';	}	set_theme_mod( 'background_size', $size );	}	if ( isset( $_POST['background-repeat'] ) ) {	check_admin_referer( 'custom-background' );	$repeat = $_POST['background-repeat'];	if ( 'no-repeat' !== $repeat ) {	$repeat = 'repeat';	}	set_theme_mod( 'background_repeat', $repeat );	}	if ( isset( $_POST['background-attachment'] ) ) {	check_admin_referer( 'custom-background' );	$attachment = $_POST['background-attachment'];	if ( 'fixed' !== $attachment ) {	$attachment = 'scroll';	}	set_theme_mod( 'background_attachment', $attachment );	}	if ( isset( $_POST['background-color'] ) ) {	check_admin_referer( 'custom-background' );	$color = preg_replace( '/[^0-9a-fA-F]/', '', $_POST['background-color'] );	if ( strlen( $color ) === 6 || strlen( $color ) === 3 ) {	set_theme_mod( 'background_color', $color );	} else {	set_theme_mod( 'background_color', '' );	}	}	$this->updated = true; } 

Changelog

VersionDescription
3.0.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.