我试图以缩略图,价格和标题显示6个特色产品。但是我无法看到任何内容,但是如果我使用$loop->found_posts
我可以看到有6条记录从数据库中取回。
我还在wp-config.php
中添加了这些行以查看错误,但我无法在页面上看到任何错误
WP-config.php中
define('WP_DEBUG', true);
if (WP_DEBUG) {
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', true);
@ini_set('display_errors', 0);
}
这是我显示精选帖子的代码
<?php
$args = array (
'post_type'=>'product',
'meta_key'=>'_featured',
'posts_per_page'=>6
);
$loop= new WP_Query($args);
//echo $loop->found_posts;
while($loop->have_posts()): the_post();
echo '
<div class="col-xs-4">
<div class="custom-product">
<img src="'.woocommerce_get_product_thumbnail(300,335).'">
<div class="price-title">
<h2>'.the_title().'</h2>
<h3>'.$product->get_price_html().'</h3>
</div>
</div>
</div>
';
endwhile;
?>
答案 0 :(得分:3)
这里几点建议:
您应该使用:
while( $loop->have_posts() ): $loop->the_post();
而不是:
while( $loop->have_posts() ): the_post();
因为否则您要设置与全局$wp_query
对象相关的帖子。
请注意,the_title()
不会返回该值,而是echo
-
确保在循环中定义$product
。
在您的辅助查询后使用wp_reset_postdata()
,以恢复全局$post
变量。
您可以使用posts
的{{1}}属性:
WP_Query
查看一系列查询帖子。
要检查生成的SQL查询,我们可以使用var_dump( $loop->posts );
的{{1}}属性:
request
当我们需要调试查询时,这可以派上用场。
答案 1 :(得分:1)
这应该按预期工作。 woocommerce_get_product_thumbnail
回显图像标记HTML,您需要传递的参数是现有的缩略图名称,以及占位符的宽度和高度。
<?php
$args = array(
'post_type' => 'product',
'meta_key' => '_featured',
'posts_per_page' => 6
);
$loop = new WP_Query( $args );
global $product;
while ( $loop->have_posts() ) : $loop->the_post(); ?>
<div class="col-xs-4">
<div class="custom-product">
<?php echo woocommerce_get_product_thumbnail( 'shop_catalog', 300, 335 ); ?>
<div class="price-title">
<h2><?php the_title(); ?></h2>
<h3><?php echo $product->get_price_html(); ?></h3>
</div>
</div>
</div>
<?php
endwhile;
wp_reset_postdata();
?>
您可以按照此处所述设置自定义图片尺寸 - &gt; WooCommerce Codex
答案 2 :(得分:0)
shop_catalog我第一次点击google返回了以下link。
根据他们的说明我更新了您的代码。 以下代码应该有效:
<?php
$args = array (
'post_type' => 'product',
'meta_key' => '_featured',
'meta_value' => 'yes',
'posts_per_page' => 6
);
global $post;
$loop= new WP_Query($args);
//echo $loop->found_posts;
while($loop->have_posts()): $loop->the_post();
$post = $loop->post;
setup_postdata( $post );
$product = get_product( $loop->post->ID );
echo '
<div class="col-xs-4">
<div class="custom-product">
<img src="' . woocommerce_get_product_thumbnail('shop_catalog ', 300,335) . '">
<div class="price-title">
<h2>' . get_the_title(). '</h2>
<h3>' . $product->get_price_html() . '</h3>
</div>
</div>
</div>
';
endwhile;
wp_reset_postdata();
?>
答案 3 :(得分:0)
我遇到了同样的问题。试试这个 !适合我
<?php
$featured_query = new WP_Query( array(
'tax_query' => array(
array(
'taxonomy' => 'product_visibility',
'field' => 'name',
'terms' => 'featured',
'operator' => 'IN'
),
),
) );
?>