has_post_thumbnail()
Проверяет имеет ли указанная запись (пост) картинку миниатюру. Условный тег.
Заметка! Чтобы для поста можно было определить картинку миниатюру, нужно активировать эту возможность функцией — add_theme_support( 'post-thumbnails' );
в файле шаблона funсtions.php.
Работает на основе: get_post_thumbnail_id()
1 раз — 0.000032 сек (очень быстро) | 50000 раз — 0.47 сек (очень быстро) | PHP 7.0.5, WP 4.5.2
Хуки из функции
Возвращает
true|false
. true - если у поста есть миниатюра. false - если миниатюры нет.
Использование
<?php has_post_thumbnail( $post_id ); ?>
- $post_id(число/WP_Post)
- ID или объект поста, наличие миниатюры для которого нужно проверить.
По умолчанию: ID текущего поста в цикле.
Примеры
#1 Этот пример проверяет есть ли у поста прикрепленная к нему картинка миниатюра.
Если картинки не существует, то выведем картинку по умолчанию (определим её сами: загрузим файл в папку images нашей темы).
<?php //должно находится внутри цикла if( has_post_thumbnail() ) { the_post_thumbnail(); } else { echo '<img src="'.get_bloginfo("template_url").'/images/img-default.png" />'; } ?>
Список изменений
С версии 2.9.0 | Введена. |
С версии 4.4.0 | $post can be a post ID or WP_Post object. |
Код has_post_thumbnail() has post thumbnail WP 6.6.2
function has_post_thumbnail( $post = null ) { $thumbnail_id = get_post_thumbnail_id( $post ); $has_thumbnail = (bool) $thumbnail_id; /** * Filters whether a post has a post thumbnail. * * @since 5.1.0 * * @param bool $has_thumbnail true if the post has a post thumbnail, otherwise false. * @param int|WP_Post|null $post Post ID or WP_Post object. Default is global `$post`. * @param int|false $thumbnail_id Post thumbnail ID or false if the post does not exist. */ return (bool) apply_filters( 'has_post_thumbnail', $has_thumbnail, $post, $thumbnail_id ); }