在內容管理系統大行其道的今天,建立一個模塊化的網站,已不再是難事。用Wordpress+WooCommerce便可以比較方便的建立一個電商網站。
通過WooCommerce上加載的各種主題,可以方便的構建不同風格的網上商城。商城裏的各類商品,排列的順序也很靈活,管理員可以方便的設置按更新時間排列,隨機排列,銷量排列等等。可是方便是方便,當一個商城裏不同類別的產品,想採用不同的排列方式時,這就有一定難度了。
當然,我們可以在設置裏,把排列方式改成自定義,再在每個類別的產品裏,通過拖動,來改變其位置,可這正是一項費時費力的工作。因爲,我們一般只是某幾類產品想用一種排列方式,而另幾類,用另一個排列方式。
其實,實現這個目標,並不非常困難,三行代碼就可以解決。
我們在管理後臺,在主題的編輯器裏,找到萬能的functions.php文件,就可以解決這個問題。
functions.php是一個非常重要的核心程序,把代碼加在這裏,幾乎每個頁面打開時都會加載一次。在functions.php文件的編輯窗口加上下面的三行代碼,就可以輕鬆的解決排序問題了:
我們來逐行分析一下,看似三行代碼,其實就是兩句話,一個是if條件語句,
//choose categories where default sorting will be changed
if (is_product_category( array( 'category1', 'category2', 'category3' ))) {
這裏用一個數列來判斷,是否是這幾個條件的產品類別。
return 'date'; // sort by latest
這個表示按時間順序排列,也就是最新上新的會在最前面。除了date以外,常用的WooCommerce對應的排列方式如下:
popularity = “Sort by popularity”
rating = “Sort by average rating”
date = “Sort by latest”
price = “Sort by price: low to high”
price-desc = “Sort by price: high to low”
上面的代碼裏,其他的就按受歡迎程度排列了:return 'popularity'。至此上面的三行代碼,也就沒有啥神祕的了。
只是,有時我們並不需要array來區分多個類別,我們只有一個分類,要用特殊的排列方式。這樣的話大部分代碼還是相同的,只需要把第一句改成:
if (is_product_category( 'category1' )) {
就可以了。
三行代碼,總是很簡單的,大家都可以試試。