get_attachment_template()WP 2.0.0

Retrieves path of attachment template in current or parent template.

The hierarchy for this template looks like:

  1. {mime_type}-{sub_type}.php
  2. {sub_type}.php
  3. {mime_type}.php
  4. attachment.php

An example of this is:

  1. image-jpeg.php
  2. jpeg.php
  3. image.php
  4. attachment.php

The template hierarchy and template path are filterable via the {@see '$type_template_hierarchy'} and {@see '$type_template'} dynamic hooks, where $type is 'attachment'.

Хуков нет.

Возвращает

Строку. Full path to attachment template file.

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

get_attachment_template();

Заметки

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

С версии 2.0.0 Введена.
С версии 4.3.0 The order of the mime type logic was reversed so the hierarchy is more logical.

Код get_attachment_template() WP 6.5.2

function get_attachment_template() {
	$attachment = get_queried_object();

	$templates = array();

	if ( $attachment ) {
		if ( str_contains( $attachment->post_mime_type, '/' ) ) {
			list( $type, $subtype ) = explode( '/', $attachment->post_mime_type );
		} else {
			list( $type, $subtype ) = array( $attachment->post_mime_type, '' );
		}

		if ( ! empty( $subtype ) ) {
			$templates[] = "{$type}-{$subtype}.php";
			$templates[] = "{$subtype}.php";
		}
		$templates[] = "{$type}.php";
	}
	$templates[] = 'attachment.php';

	return get_query_template( 'attachment', $templates );
}