get_attached_media() WP 3.6.0

Отримує вкладення (картинки, відео, аудіо), прикріплені до запису (посту). Отримує об’єкти даних як масиву.

Ця функція повертає ті вкладення, які були завантажені для посту (які прикріплені до посту).

Наприклад, ми завантажили картинку в пост A (ID 1), а потім додали цю картинку в пост пост B (ID 2). Тоді наступний код видасть порожній масив:

$media = get_attached_media( 'image', 2);
var_dump($media);

Об’єкти WP_Post в масиві який поверне функція будуть упорядковані за спаданням (ASC) по полю menu_order.

Працює на основі:
get_children()

Хуки з функції

Повертає

WP_Post[]. Масив об’єктів, знайдених вкладень або пустий масив: array()

Використання

$attach = get_attached_media( $type, $post );
$type
(рядок) (обов’язковий)
Тип вкладень, які необхідно отримати. Наприклад: ‘image’, ‘audio’, ‘video’, ‘video/mp4’.
$post
(число/WP_Post)
ID запису вкладення якої потрібно отримати.


За замовчуванням: поточний пост

Приклади

0

#1 Отримаємо вкладення-картинки поточного посту

У цьому прикладі ми отримаємо дані картинок приліплених до запису ID=2018:

$media = get_attached_media('image', 2018);
print_r($media);

Цей код виведе на екран щось таке:

Array
(
	[2024] => WP_Post Object
		(
			[ID] => 2024
			[post_author] => 1
			[post_date] => 2013-01-09 19:46:33
			[post_date_gmt] => 2013-01-09 15:46:33
			[post_content] =>
			[post_title] => ajax у WordPress
			[post_excerpt] =>
			[post_status] => inherit
			[comment_status] => open
			[ping_status] => open
			[post_password] =>
			[post_name] => ajax-in-wp
			[to_ping] =>
			[pinged] =>
			[post_modified] => 2013-01-09 19:46:33
			[post_modified_gmt] => 2013-01-09 15:46:33
			[post_content_filtered] =>
			[post_parent] => 2018
			[guid] => http://wp-kama.ru/wp-content/uploads/2013/01/ajax-in-wp.jpg
			[menu_order] => 0
			[post_type] => attachment
			[post_mime_type] => image/jpeg
			[comment_count] => 0
			[filter] => raw
		)
	[2000] => WP_Post Object
		(
			[ID] => 2024
			...
		)
)
0

#2 Отримаємо першу картинку-вкладення, прикріплену до запису

Цей код показує, як отримати першу картинку, яка прикріплена до посту з ID = 2018:

$media = get_attached_media('image', 2018);
$media = array_shift($media);

// Посилання на картинку
$image_url = $media->guid;

// Виведемо картинку у браузері
echo '<img src="'. $image_url .'" />';
0

#3 Отримаємо вкладення посту будь-якого типу

Можна отримати всі прикріплені додатки посту, незалежно від типу. Для цього в першому параметрі потрібно вказати порожній рядок:

$media = get_attached_media('');

// або

$media = get_attached_media('', 102);

список змін

З версії 3.6.0Введено.

Код get_attached_media() WP 6.0.2

function get_attached_media( $type, $post = 0 ) {
	$post = get_post($post);

	if (! $post) {
		return array();
	}

	$ args = array (
		'post_parent' => $post->ID,
		'post_type' => 'attachment',
		'post_mime_type' => $type,
		'posts_per_page' => -1,
		'orderby' => 'menu_order',
		'order' => 'ASC',
	);

	/**
	 * Filters arguments used to retrieve media attached to the given post.
	 *
	 * @ Since 3.6.0
	 *
	 * @param array $args Post query arguments.
	 * @param string $type Mime type of desired media.
	 * @param WP_Post $post Post об'єкт.
	 */
	$args = apply_filters( 'get_attached_media_args', $args, $type, $post);

	$ Children = get_children ($ Args);

	/**
	 * Filters List Media зараховані до given post.
	 *
	 * @ Since 3.6.0
	 *
	 * @param WP_Post[] $children Array of media зарахований до given post.
	 * @param string $type Mime тип медіа захищений.
	 * @param WP_Post $post Post об'єкт.
	 */
	return (array) apply_filters( 'get_attached_media', $children, $type, $post );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *