2015-11-13 24 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

相关问题