2013-05-07 72 views
4

我需要將我在woocommerce 商店頁面上擁有的所有商品分開分類。默認情況下,即使產品屬於不同類別,所有產品都出現在同一個列表中。將每個類別放在類別標題下的單獨列表中將會很好。將所有商品分類到Woocommerce商城頁面

+0

我米也在尋找這個。運氣好的話? – 2013-07-03 22:35:14

回答

3

要做到這一點的唯一方法是複製和編輯模板文件或使用鉤子。我最喜歡的方式是使用鉤子,因爲它在插件更新時沒有什麼侵入性。首先,您要確保將您的woocommerce設置設置爲在產品頁面上顯示類別。然後打開你的主題functions.php文件,並把這個在它:

function order_by_multiple() { 
if(function_exists('is_woocommerce')){ 
if(is_woocommerce()||is_search()||is_product_category()) return ' tm.meta_value, post_title'; 
} 
} 
function product_order_join($join){ 
global $wpdb; 
if(function_exists('is_woocommerce')){ 
if(is_woocommerce()||is_search()||is_product_category()){ 
$join.= " JOIN " . $wpdb->term_relationships ." tr ON " . $wpdb->posts . ".id = tr.object_id JOIN " . $wpdb->term_taxonomy ." tt ON tt.term_taxonomy_id = tr.term_taxonomy_id AND tt.taxonomy = 'product_cat' JOIN " . $wpdb->terms ." t ON tt.term_id = t.term_id 
join " . $wpdb->woocommerce_termmeta ." tm on tm.woocommerce_term_id = t.term_id and tm.meta_key = 'order' ";} 
} 
return $join; 

} 
add_filter("posts_join","product_order_join"); 
if(!is_admin())add_filter("posts_orderby", "order_by_multiple"); 

替換「product_cat」與任何的分類/屬性。 對於屬性,woocommerce在分類名稱前面廣告'pa_'。 因此,如果您的屬性名稱是流派,那麼您會用pa_genre替換product_cat。

也,你也許可以用

add_filter('woocommerce_get_catalog_ordering_args',"order_by_multiple"); 

更換

add_filter("posts_orderby", "order_by_multiple"); 

我一直還沒來測試尚未機會。

最後你可以通過幾乎所有的東西傳遞和使用的woocommerce短代碼:

[product_category category="category-slug-name-here" per_page="12" columns="4" orderby="date" order="desc"] 
+0

使用短代碼是唯一符合我想要的方式。 – marblegravy 2013-10-31 03:28:02

0

我只是堅持直入我的網頁這一點,它工作得很好 -

<?php echo do_shortcode('[product_category category="category name"]'); ?> 
相關問題