2017-04-12 6 views
0

私はWoocommerce製品用のWordpressでカスタムループを作成しようとしています。私はループの中でランダムに特集された製品を見せたい。しかし、何らかの理由で、私の主張を正当なものとせず、利用可能なすべての製品からランダムな製品を選んでいます。WPカスタムループでランダム機能商品(woocommerce)を表示するにはどうすればよいですか?

これは私が瞬時に使用しているコードです。ランダムなプロダクトを表示しますが、コードの特徴部分を無視します。

$args = array(
    'posts_per_page' => 1, 
    'orderby'   => 'rand', 
    'post_type'  => 'product', 
    'meta_query' => array(
     'key'  => '_featured', 
     'value' => 'yes' 
    ) 
); 

$loop = new WP_Query($args); 
while ($loop->have_posts()) : $loop->the_post(); global $product; ?> 

<li> 
    <a href="<?php echo the_permalink(); ?>"> 
     <h3><?php the_title(); ?></h3> 
    </a> 
</li> 

<?php endwhile; 
wp_reset_query(); ?> 

誰かが正しい方向に私を導くことができますか?

ありがとうございます!

答えて

3

を、しかし、それの基礎になる可能性があります。

特色の項目がもはやメタとして格納されていないようです:

$meta_query = WC()->query->get_meta_query(); 
    $tax_query = WC()->query->get_tax_query(); 
    $tax_query[] = array(
     'taxonomy' => 'product_visibility', 
     'field' => 'name', 
     'terms' => 'featured', 
     'operator' => 'IN', 
    ); 

$query_args = array(
    'post_type'   => 'product', 
    'post_status'   => 'publish', 
    'ignore_sticky_posts' => 1, 
    'posts_per_page'  => 1, 
    'meta_query'   => $meta_query, 
    'tax_query'   => $tax_query, 
);` 
+0

ありがとう。これが解決策でした。それは今働いている! 私は 'orderby' => 'rand'を$ query_argsに追加していますので、注目商品はランダムに表示されます。 – Borneyak

+0

woocommerce 3.xで動作します。次のような機能を持つ製品には機能があるといいでしょう: 'wc_get_product_ids_on_sale()' –

0

私はこれしようと、あなたのキーと値の配列が離れすぎて、予想される配列の階層における最高だと思う:あなたの問題のために直接

そのない、私はちょうどこの渡って来ている

$args = array(
    'posts_per_page' => 1, 
    'orderby'   => 'rand', 
    'post_type'  => 'product', 
    'meta_query' => array(
     array(
      'key'  => '_featured', 
      'value' => 'yes', 
     ) 
    ) 
); 
+0

はこれを試してみましたが、それはうまくいきませんでした。私は配列の1つのレベルの代わりに1つのレベルを上に置くことによって、逆も試みました。それはどちらもうまくいかなかった。引数 'meta_key' => '_featured'も試してみました。また動作しませんでした。 – Borneyak

+0

誰かが私に答えてくれることを願っています。私はまだ見ている...... – Borneyak

0

私は同じ問題を抱えて。これを試して !私の作品WooCommerce 3で

<?php 
     $featured_query = new WP_Query(array(
      'tax_query' => array(
        array(
        'taxonomy' => 'product_visibility', 
        'field' => 'name', 
        'terms' => 'featured', 
        'operator' => 'IN' 
       ), 
     ), 
    )); 
?> 
1

おすすめ商品ループ

<ul class="products"> 
<?php 
    $args = array(
     'post_type'  => 'product', 
     'posts_per_page' => 12, 
     'orderby'  => 'rand', 
     'tax_query' => array(
       array(
        'taxonomy' => 'product_visibility', 
        'field' => 'name', 
        'terms' => 'featured', 
       ), 
      ), 
     ); 
    $loop = new WP_Query($args); 
    if ($loop->have_posts()) { 
     while ($loop->have_posts()) : $loop->the_post(); 
      wc_get_template_part('content', 'product'); 
     endwhile; 
    } else { 
     echo __('No products found'); 
    } 
    wp_reset_postdata(); 
?>