Получение ID миниатюры поста в WordPress

Получение 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, если такой пост не существует.

Изменения в функциях

  1. С версии 2.9.0 — функция была добавлена.
  2. С версии 4.4.0 — $post может быть ID поста или объектом WP_Post.
  3. С версии 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!

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *