Retrieve path of attachment template in current or parent template.

The attachment path first checks if the first part of the mime type exists. The second check is for the second part of the mime type. The last check is for both types separated by an underscore. If neither are found then the file ‘attachment.php’ is checked and returned.

Some examples for the ‘text/plain’ mime type are ‘text.php’, ‘plain.php’, and finally ‘text_plain.php’.

The template path is filterable via the ‘attachment_template’ hook.

Signature

get_attachment_template()

Return

(string) Full path to attachment template file.

Source

function get_attachment_template() {
	global $posts;

	if ( ! empty( $posts ) && isset( $posts[0]->post_mime_type ) ) {
		$type = explode( '/', $posts[0]->post_mime_type );

		if ( ! empty( $type ) ) {
			if ( $template = get_query_template( $type[0] ) )
				return $template;
			elseif ( ! empty( $type[1] ) ) {
				if ( $template = get_query_template( $type[1] ) )
					return $template;
				elseif ( $template = get_query_template( "$type[0]_$type[1]" ) )
					return $template;
			}
		}
	}

	return get_query_template( 'attachment' );
}
WP Trac GitHub

Link here