W3cubDocs

/WordPress

_delete_attachment_theme_mod( int $id )

This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.

Checks an attachment being deleted to see if it’s a header or background image.

Description

If true it removes the theme modification which would be pointing at the deleted attachment.

Parameters

$id

(int) (Required) The attachment id.

Source

File: wp-includes/theme.php

function _delete_attachment_theme_mod( $id ) {
	$attachment_image = wp_get_attachment_url( $id );
	$header_image     = get_header_image();
	$background_image = get_background_image();
	$custom_logo_id   = get_theme_mod( 'custom_logo' );

	if ( $custom_logo_id && $custom_logo_id == $id ) {
		remove_theme_mod( 'custom_logo' );
		remove_theme_mod( 'header_text' );
	}

	if ( $header_image && $header_image == $attachment_image ) {
		remove_theme_mod( 'header_image' );
		remove_theme_mod( 'header_image_data' );
	}

	if ( $background_image && $background_image == $attachment_image ) {
		remove_theme_mod( 'background_image' );
	}
}

Changelog

Version Description
4.5.0 Also removes custom logo theme mods.
4.3.0 Also removes header_image_data.
3.0.0 Introduced.

© 2003–2019 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/_delete_attachment_theme_mod