Я недавно обновил WordPress и PHP на моем тестовом сервере. Я исправил много ошибок, но эта вводит меня в заблуждение. На странице моего магазина перестали появляться мои миниатюры. Мои продукты и цены по-прежнему отображаются правильно. Вот сообщение об ошибке
Notice: id was called incorrectly. Product properties should not be accessed directly.
Вот PHP
<?php
$placeholder_width = $placeholder_height = 400;
$url = wp_get_attachment_image_src( get_post_thumbnail_id($product->ID), array(260,260) );
if ( has_post_thumbnail() ){?>
<?php if ( is_plugin_active( 'woocommerce-lazyload/woocommerce-lazyload.php' )) {?>
<a href="<?php echo get_permalink($posts->ID) ?>"> <img data-src="<?php echo get_the_post_thumbnail_url($posts->ID , ['220','220']); ?>" class="attachment-220x220 size-220x220 wp-post-image" width="300" height="300"></a>
<?php }else{ ?>
<a href="<?php echo get_permalink($posts->ID) ?>"> <img src="<?php echo get_the_post_thumbnail_url($posts->ID , ['220','220']); ?>" class="attachment-220x220 size-220x220 wp-post-image"></a>
<?php }?>
<?php
}
else {
echo '<img src="'. woocommerce_placeholder_img_src() .'" alt="Placeholder" width="' . $placeholder_width . '" height="' . $placeholder_height . '" />';
}
?>
В этой части есть проблема. Я попытался удалить оператор if и jsut захватить изображение и URL. Я попытался преобразовать $product->ID
в $product->get_id()
, и последний фактически удаляет сообщение об ошибке, но мои миниатюры не отображаются. Должен быть правильный postID, потому что имена и цены отображаются и классифицируются соответственно. Какие-либо предложения?