2014-02-18 104 views

回答

1

請試試這個。讓我知道這是否完美;)

$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; 

乾杯!

+0

謝謝,它的工作原理。 但是另外一個問題,如果我將這個代碼放在一個小部件中,代碼保持不變,或者應該改變? 我試圖把代碼放在一個小部件預設中,但是wordpress給了我一個錯誤。 再次感謝您的幫助。 – user3324080

+1

您錯過了一條分配$ product的產品,可能是: $ product = wc_get_product($ post-> ID) – RichardAtHome

+1

由於@RichardAtHome提到過,您沒有聲明'$ product';您需要先獲取WC產品對象,然後才能運行任何方法。但更重要的是:**永遠不要使用query_posts。**它只適用於主查詢循環,不應該被修改。有很多很多其他方法來抓取你想要的帖子。供參考:http://wordpress.stackexchange.com/a/1755/17826 – indextwo

3

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' => array('product', 'product_variation')

相關問題