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);
}