get_post_thumbnail_id()
Отримує 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()
(дуже повільно) | 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
Приклади
#1 Отримаємо ID основної картинки (мініатюри) посту
$post_thumbnail_id = get_post_thumbnail_id($post); // 123
#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() 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); }