has_post_thumbnail() WP 2.9.0

Перевіряє чи має вказаний запис (пост) картинку мініатюру. Умовний тег.

Нотатка! Щоб посту можна було визначити картинку мініатюру, потрібно активувати цю можливість функцією — 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 поточного поста в циклі.

Приклади

0

#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 або WP_Post object.

Код has_post_thumbnail() WP 6.0.2

function has_post_thumbnail( $post = null ) {
	$thumbnail_id = get_post_thumbnail_id($post);
	$has_thumbnail = (bool) $thumbnail_id;

	/**
	 * Filters whether a post має 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 або WP_Post object. Default is global `$post`.
	 * @param int|false $thumbnail_id Post thumbnail ID або false, якщо немає ніякого повідомлення.
	 */
	return (bool) apply_filters( 'has_post_thumbnail', $has_thumbnail, $post, $thumbnail_id );
}