get_post_thumbnail_id() WP 2.9.0

Отримує ID мініатюри вказаного запису (поста). Отримує ID вкладення (картинки).

Можна використовувати всередині циклу WordPress.

Щоб для посту можна було визначити зображення мініатюру, потрібно активувати цю можливість функцією – add_theme_support( ‘post-thumbnails’ ) у файлі шаблону funсtions.php .

ID мініатюри записується у службове довільне поле _thumbnail_id.

Використовуйте get_the_post_thumbnail_url() , щоб отримати URL-адресу мініатюри посту.

Використовуйте set_post_thumbnail() , щоб встановити мініатюру посту:

set_post_thumbnail($post_id, $thumbnail_id);

Працює на основі:
get_post_meta()
1 раз – 0.00126 сек
(дуже повільно) | 50000 разів – 0.28 сек
(дуже швидко) |
PHP 7.1.5, WP 4.8.1

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

Повертає

int|false. ID мініатюри – якщо вона є. false – якщо мініатюри немає (до версії 5.5 повертався порожній рядок).

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

$id = get_post_thumbnail_id($post_id);
$post_id
(число/WP_Post)
ID або пост, для якого потрібно отримати ID мініатюри.


Типово: global $post

Приклади

0

#1 Отримаємо ID основної картинки (мініатюри) посту

$post_thumbnail_id = get_post_thumbnail_id($post); // 123
0

#2 Усі вкладення поточного поста, крім мініатюр

Щоб вивести всі прикріплені до посту файли, крім картинок-мініатюр, можна використовувати такий код. Змінна $post має бути визначена!

<?php

$attachments = get_posts([
	'post_type' => 'attachment',
	'numberposts' => -1,
	'post_status' => null,
	'post_parent' => $post->ID,
	'exclude' => get_post_thumbnail_id()
]);

if ($attachments) {
	foreach ( $attachments as $attachment ) {
		echo apply_filters( 'the_title', $attachment->post_title );
		the_attachment_link( $attachment->ID, false );
	}
}

?>

Для отримання записів (прикріплених фалів) використовується функція get_posts() .

список змін

З версії 2.9.0Введено.
З версії 4.4.0$post can be a post ID або WP_Post object.
З версії 5.5.0Відмінна величина для неіснуючого повідомлення була змінена на false instead of empty string.

Код get_post_thumbnail_id() WP 6.0.2

function get_post_thumbnail_id( $post = null ) {
	$post = get_post($post);

	if (! $post) {
		return false;
	}

	$thumbnail_id = (int) get_post_meta( $post->ID, '_thumbnail_id', true );

	/**
	 * Filters the post thumbnail ID.
	 *
	 * @ Since 5.9.0
	 *
	 * @param int|false $thumbnail_id Post thumbnail ID або false, якщо немає ніякого повідомлення.
	 * @param int|WP_Post|null $post Post ID або WP_Post object. Default is global `$post`.
	 */
	return (int) apply_filters( 'post_thumbnail_id', $thumbnail_id, $post);
}