Custom_Image_Header::insert_attachment()publicWP 3.9.0

Inserts an attachment and its metadata.

Method of the class: Custom_Image_Header{}

Hooks from the method

Return

Int. Attachment ID.

Usage

$Custom_Image_Header = new Custom_Image_Header();
$Custom_Image_Header->insert_attachment( $attachment, $cropped );
$attachment(array) (required)
An array with attachment object data.
$cropped(string) (required)
File path to cropped image.

Changelog

Since 3.9.0 Introduced.

Custom_Image_Header::insert_attachment() code WP 6.4.3

final public function insert_attachment( $attachment, $cropped ) {
	$parent_id = isset( $attachment['post_parent'] ) ? $attachment['post_parent'] : null;
	unset( $attachment['post_parent'] );

	$attachment_id = wp_insert_attachment( $attachment, $cropped );
	$metadata      = wp_generate_attachment_metadata( $attachment_id, $cropped );

	// If this is a crop, save the original attachment ID as metadata.
	if ( $parent_id ) {
		$metadata['attachment_parent'] = $parent_id;
	}

	/**
	 * Filters the header image attachment metadata.
	 *
	 * @since 3.9.0
	 *
	 * @see wp_generate_attachment_metadata()
	 *
	 * @param array $metadata Attachment metadata.
	 */
	$metadata = apply_filters( 'wp_header_image_attachment_metadata', $metadata );

	wp_update_attachment_metadata( $attachment_id, $metadata );

	return $attachment_id;
}