【问题标题】:Woocommerce: get a list for all sku productWoocommerce:获取所有 sku 产品的列表
【发布时间】:2014-02-18 15:39:00
【问题描述】:

我想进入一个<li> 列表中的所有 sku 在电子商务中。 我相信我应该使用foreach循环,但我不知道如何回忆所有产品的选择。

感谢所有回复,并为我的英语不好感到抱歉。 伟大的

【问题讨论】:

    标签: wordpress e-commerce woocommerce product skus


    【解决方案1】:

    Never, ever use query_posts。它用于主查询循环,绝不应修改。有很多很多其他方法可以获取您想要的帖子。例如:

    $args = array(
        'post_type' => 'product', 
        'posts_per_page' => -1
    );
    
    $wcProductsArray = get_posts($args);
    
    if (count($wcProductsArray)) {
        foreach ($wcProductsArray as $productPost) {
            $productSKU = get_post_meta($productPost->ID, '_sku', true);
            $productTitle = get_the_title($productPost->ID);
    
            echo '<li>' . $productSKU . '</li>';
        }
    }
    

    值得注意的是,此方法只会获取简单产品,不会包含产品变体。如果您也想获取这些,则需要将 $args 更新为 'post_type' =&gt; array('product', 'product_variation')

    【讨论】:

      【解决方案2】:

      请试试这个。让我知道这是否完美;)

      $args = array( 'post_type' => 'product', 'posts_per_page' => -1 );
      query_posts( $args );
      if( have_posts() ):
          echo '<ul>';
          while ( have_posts() ) : the_post();
              echo '<li>'. $product->get_sku() . '</li>';
          endwhile;
          echo '</ul>';
      endif;
      

      干杯!

      【讨论】:

      • 谢谢,它有效。但是另一个问题,如果我将这段代码放在一个小部件中,代码保持不变,还是应该改变?我试图将代码放在小部件预设中,但 wordpress 给我一个错误。再次感谢您的帮助。
      • 您缺少分配 $product 的行,可能是:$product = wc_get_product($post->ID)
      • 正如@RichardAtHome 提到的,你没有声明$product;您需要先获取 WC 产品对象,然后才能对其运行任何方法。但更重要的是:永远不要使用 query_posts。 它仅用于主查询循环,永远不要修改。有很多很多其他方法可以获取您想要的帖子。供参考:wordpress.stackexchange.com/a/1755/17826
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多