Вывод картинки по умолчанию если отсутствует миниатюра в WP

Способов вывести какую-то дефолтную картинку (т.е. картинку по умолчанию) в случае отсутствия миниатюры у записи — несколько.

Предлагаю разобрать два, наиболее популярных варианта.

Одинаковая картинка для всех записей без миниатюр.

Код, который я привожу ниже, как правило вставляют в файл шаблона archive.php, поскольку именно этот файл отвечает за формирование списка записей в рубрике.

if (has_post_thumbnail()): // если миниатюра есть
	the_post_thumbnail(); // выводим ее
else:
	print 'default image'; // если нет, то показываем файл no_img.jpg
endif;

Вывод первой прикрепленной картинки.

Более продвинутый способ, который целесообразно использовать в тех случаях, когда Вы точно уверены, что при создании записей загружались изображения, которые содержаться в тексте, но в тоже время ни одно из изображений не использовалось в качестве миниатюры записи.

<?php
$args = array('attachment', 'orderby' => 'menu_order', 'order'=> 'ASC', 'numberposts' => 3, 'post_status' => null, 'post_parent' => $post->ID );
$attachments = get_posts($args);
$get_children_array = get_children($args, ARRAY_A); // вернет массив с ключами: [$image_ID]…
$rekeyed_array = array_values($get_children_array); // обнулим ключи
$child_image = $rekeyed_array[0]; // первая картинка из массива
$img_url = $child_image['guid']; // заносим урл первой картинки в переменную $img_url
?>
<!— Теперь для вывода самой картинки нужно использовать например такой код —>
<img class="alignleft" src="<?php echo $img_url; ?>" alt="" height="165" />

Очевидно, что при желании можно комбинировать оба способа, однако подобное не всегда востребовано.

Рейтинг: 5

2022-07-02 / / 0 комментариев / Про кодинг и сервер / ,