无法获得woocommerce特色产品

时间:2015-03-09 17:59:56

标签: php wordpress woocommerce

我试图以缩略图,价格和标题显示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;
?>

4 个答案:

答案 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'
             ),
      ),
 ) );
 ?>