WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

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 or WP_Post object.
С версии 5.5.0 The return value for a non-existing post was changed to false instead of an empty string.

Код get_post_thumbnail_id() WP 6.1.1

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 or false if the post does not exist.
	 * @param int|WP_Post|null $post         Post ID or WP_Post object. Default is global `$post`.
	 */
	return (int) apply_filters( 'post_thumbnail_id', $thumbnail_id, $post );
}
2 комментария
    Войти