Custom_Background::wp_set_background_image()publicWP 3.4.0

Устарела с версии 3.5.0. Больше не поддерживается и может быть удалена. Рекомендуется заменить эту функцию на аналог.

Метод класса: Custom_Background{}

Хуки из метода

Возвращает

null. Ничего (null).

Использование

$Custom_Background = new Custom_Background();
$Custom_Background->wp_set_background_image();

Список изменений

С версии 3.4.0 Введена.
Устарела с 3.5.0

Код Custom_Background::wp_set_background_image() WP 6.5.2

public function wp_set_background_image() {
	check_ajax_referer( 'custom-background' );

	if ( ! current_user_can( 'edit_theme_options' ) || ! isset( $_POST['attachment_id'] ) ) {
		exit;
	}

	$attachment_id = absint( $_POST['attachment_id'] );

	$sizes = array_keys(
		/** This filter is documented in wp-admin/includes/media.php */
		apply_filters(
			'image_size_names_choose',
			array(
				'thumbnail' => __( 'Thumbnail' ),
				'medium'    => __( 'Medium' ),
				'large'     => __( 'Large' ),
				'full'      => __( 'Full Size' ),
			)
		)
	);

	$size = 'thumbnail';
	if ( in_array( $_POST['size'], $sizes, true ) ) {
		$size = esc_attr( $_POST['size'] );
	}

	update_post_meta( $attachment_id, '_wp_attachment_is_custom_background', get_option( 'stylesheet' ) );

	$url       = wp_get_attachment_image_src( $attachment_id, $size );
	$thumbnail = wp_get_attachment_image_src( $attachment_id, 'thumbnail' );
	set_theme_mod( 'background_image', sanitize_url( $url[0] ) );
	set_theme_mod( 'background_image_thumb', sanitize_url( $thumbnail[0] ) );
	exit;
}