嗨-我有类似的问题。WooCommerce将目录图像用于目录和相关产品图像。这不理想,因为这会降低图像质量或速度。因此,我尝试为相关产品添加第四个图像类别。Howdy McGee解决了这个问题。请看看Howdy McGees的答案:
修改相关产品图片大小:阅读他的代码!
它可以满足我的需求。对于您的问题,可以应用相同的逻辑。希望这可以帮助。
问候,
西奥
**增加:**
我找到了可行的解决方案。
步骤1:在functions.php中分配新的缩略图大小。检查参考:wp Codex!
/*add your custom size*/
add_action( 'after_setup_theme', 'your_theme_setup' );
function your_theme_setup() {
add_image_size( 'your-thumb', 123, 123, true );//insert your values
}
注意:'您的拇指',您稍后将使用此变量名称
步骤2:然后在要显示特色产品的任何地方添加以下代码:
<h1>featured products</h1>
<div class="woocommerce">
<ul class= "products">
<?php
$args = array( 'post_type' => 'product', 'meta_key' => '_featured','posts_per_page' => 4,'columns' => '4', 'meta_value' => 'yes' );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>
<li class="product post-<?php echo get_the_ID(); ?>">
<a href="<?php echo get_permalink( $loop->post->ID ) ?>" title="<?php echo esc_attr($loop->post->post_title ? $loop->post->post_title : $loop->post->ID); ?>">
<?php woocommerce_show_product_sale_flash( $post, $product ); ?>
<?php if (has_post_thumbnail( $loop->post->ID )) echo get_the_post_thumbnail($loop->post->ID, 'your-thumb'); else echo '<img src="'.woocommerce_placeholder_img_src().'" alt="Placeholder" width="123px" height="123px" />'; ?></a>
<h3><?php the_title(); ?></h3><span class="price"><?php echo $product->get_price_html(); ?></span>
</li>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
</ul>
</div>
参考和信息:(www.haloseeker.com/display-woocommerce-featured-products-without-a-shortcode/)
我将其放在wootheme mystyle的index.php(我的主页)中。不要忘记在线使用“您的拇指”:
<?php if (has_post_thumbnail( $loop->post->ID )) echo get_the_post_thumbnail($loop->post->ID, 'your-thumb'); else echo '<img src="'.woocommerce_placeholder_img_src().'" alt="Placeholder" width="123px" height="123px" />'; ?></a>
第3步:重新生成缩略图,请使用插件https://wordpress.org/plugins/regenerate-thumbnails/
步骤4:刷新浏览器并检查DOM并比较值
根据您的主题,您可以更改标记和类名称。我测试了上述方法,效果很好。
到目前为止,我唯一无法做的就是添加“添加到购物车”按钮,因为我不知道如何将变量写入“添加到购物车”按钮的简码中。这是代码:
<?php echo do_shortcode('[add_to_cart id="variable number?"]'); ?>
我希望这有帮助。
当然,有一种更优雅的方法可以做到这一点。例如在functions.php中有一个函数
问候,
西奥