wpseek.com
A WordPress-centric search engine for devs and theme authors



_delete_attachment_theme_mod › WordPress Function

Since3.0.0
Deprecatedn/a
_delete_attachment_theme_mod ( $id )
Access:
  • private
Parameters:
  • (int) $id The attachment ID.
    Required: Yes
Defined at:
Codex:
Change Log:
  • 4.3.0
  • 4.5.0
  • 6.6.0

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

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


Source

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   = (int) get_theme_mod( 'custom_logo' );
	$site_logo_id     = (int) get_option( 'site_logo' );

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

	if ( $site_logo_id && $site_logo_id === $id ) {
		delete_option( 'site_logo' );
	}

	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' );
	}
}