2015-11-13 23 views
0

我的Woocommerce網站在每個循環頁面顯示3列產品。具有不同列數的Woocommerce頁面

我做,我想展示的產品在4列,而不是3

環路我這個代碼裏面function.php tryed一些自定義的着陸頁:

add_filter('loop_shop_columns', 'loop_columns'); 
if (!function_exists('loop_columns')); { 
function loop_columns() { 
    if (is_page(91040)){ 
     return 4; 
    }else{ 
     return 3; 
    } 
} 
} 

無成功。

有沒有一種方法可以在單個或特定頁面中使用與其他列相比不同數量的列?

+0

你使用woothemes主題? – Mohsin

回答

0

我解決了這個問題。問題出在is_page函數中。它不能得到正確的ID,所以我找到了解決方法:

function loop_columns() { 
    global $woocommerce; 
    $url = explode('?', 'http://'.$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]); 
    $ID = url_to_postid($url[0]); 
    if ($ID == 91040){ 
     return 4; 
    }else{ 
     return 3; 
    } 
} 
add_filter('loop_shop_columns', 'loop_columns', 999); 
0

如果您正在使用woothemes主題或任何其他已經在使用loop_columns過濾器的主題,那麼您需要通過刪除if!函數退出條件來重寫該過濾器,並且還需要添加pririty來過濾足夠高的內容999所以最後應用:

eg

// Override theme default specification for product # per row 
function loop_columns() { 
    return 5; // 5 products per row 
} 
add_filter('loop_shop_columns', 'loop_columns', 999); 

按照你的需要,如添加頁面模板條件,你有你的原代碼,您可以調節的功能。

來源: https://docs.woothemes.com/document/change-number-of-products-per-row/第二個標題

+0

嗨@Mohsin,謝謝你的回覆。我剛剛編輯了我的代碼: 'function loop_columns(){ \t if(is_page(91040)){ \t \t return 4; \t} else { \t \t return 3; \t} } add_filter('loop_shop_columns','loop_columns',999);' 但它不起作用。 這就像它不能識別頁面ID,事實上,如果我只嘗試'返回5;'它的工作原理。 –

+0

我明白了,你在循環之外調用它。你需要添加這個全局$ post;在你的is_page行 – Mohsin

+0

@ManuelRagazzini之前,如果我的回答是任何幫助,upvote和選擇答案將不勝感激。謝謝! – Mohsin

相關問題