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 );
Хуки из функции
Возвращает
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 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() get post thumbnail id WP 6.7.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 ); }