У одного из клиентов не было всех изображений товара и из-за этого его первая страница время от времени выглядела очень печально.
Думал уже есть готовое решение, даже нашел — Placeholder Image for Woocommerce. Но он не дал нужного результата, где-то появилось, но в общем первая страница так и осталась неудел.
И вот после недолгих поисков, нашел решение, которое в WooCommerce добавляет к записи товара изображение записи, если его нету. Следующий код вставляем в functions.php вашей темы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
function autoset_featured() { $media_array = array( '4414', '4525', ); $media = $media_array[array_rand($media_array)]; global $post; $already_has_thumb = has_post_thumbnail($post->ID); if (!$already_has_thumb) { $attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" ); if ($attached_image) { foreach ($attached_image as $attachment_id => $attachment) { set_post_thumbnail($post->ID, $attachment_id); } } else { set_post_thumbnail($post->ID, $media); } } } //end function add_action('the_post', 'autoset_featured'); add_action('save_post', 'autoset_featured'); add_action('draft_to_publish', 'autoset_featured'); add_action('new_to_publish', 'autoset_featured'); add_action('pending_to_publish', 'autoset_featured'); add_action('future_to_publish', 'autoset_featured'); |
В начале скрипта есть две цифры: 4414 и 4525, это ID изображений.
Я подготовил две картинки, которые будут заменять отсутствующее изображение записи и залил их на сайт. Их ид можно посмотерть перейдя в Медиафайлы — Библиотека и нажав на нужное изображение, наведите курсор на кнопку «Пересоздать миниатюру» и снизу по ссылке увидите нужный вам номер.

Удачи вам!