Получение ID миниатюры поста в WordPress
Функция get_post_thumbnail_id() позволяет получить ID миниатюры текущего поста (или указанного поста). Миниатюра — это изображение, которое может быть связано с постом и обычно используется для его представления.
Как использовать
Эту функцию можно использовать внутри цикла WordPress. Для того чтобы использовать миниатюры, необходимо активировать эту функцию в файле functions.php вашей темы, добавив следующую строку:
add_theme_support( 'post-thumbnails' );
После этого ID миниатюры будет храниться в поле '_thumbnail_id'.
Получение URL миниатюры
Если вам нужен URL миниатюры, используйте функцию get_the_post_thumbnail_url().
Чтобы установить миниатюру поста, используйте функцию set_post_thumbnail():
set_post_thumbnail( $post_id, $thumbnail_id );
Как работает функция get_post_thumbnail_id()
Функция возвращает ID миниатюры поста или false, если пост не существует.
Аргументы функции
$post— ID поста или объектWP_Post. По умолчанию используется глобальная переменная$post.
Примеры использования
Пример 1: Получение ID миниатюры поста
$post_thumbnail_id = get_post_thumbnail_id( $post ); // Например, возвращает 123
Пример 2: Получение всех вложений поста, кроме миниатюр
Если вы хотите получить все файлы, прикреплённые к посту, кроме миниатюр, используйте следующий код:
global $post;
$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 );
}
}
Возвращаемое значение
Функция возвращает:
- ID миниатюры поста (может быть 0, если миниатюра не установлена);
false, если такой пост не существует.
Изменения в функциях
- С версии 2.9.0 — функция была добавлена.
- С версии 4.4.0 —
$postможет быть ID поста или объектомWP_Post. - С версии 5.5.0 — значение для несуществующего поста изменено с пустой строки на
false.
Код функции get_post_thumbnail_id
Если вам интересно, как реализована эта функция, вот пример её кода:
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 );
return (int) apply_filters( 'post_thumbnail_id', $thumbnail_id, $post );
}
Связанные функции
Существует несколько других функций, которые могут быть полезны при работе с миниатюрами постов:
delete_post_thumbnail()— удалить миниатюру.get_the_post_thumbnail()— получить миниатюру поста.has_post_thumbnail()— проверить, установлена ли миниатюра.set_post_thumbnail_size()— задать размеры миниатюры.
Используйте эти функции, чтобы эффективнее работать с изображениями и миниатюрами в вашем проекте WordPress!