我正在WordPress 4.6.1上设置Woocommerce 2.6.7。
我在WooCommerce设置/产品展示中的设置:
'商店页面显示'='显示类别'
'默认类别显示'='显示子类别'。
我的目标是让Shop页面和显示Subcategories的页面的布局显示为3列,如屏幕截图:
要使实际显示属于类别或子类别的产品的页面显示在一列中。我是Stack Overflow的新手,所以它不会让我发布超过2张图片,但如果你看到下一张图片,你就会明白这一点。
使用我在Woocommerce文档中找到的一些CSS和代码片段,我已经设法按照我想要的方式显示属于类别的产品。
add_filter('loop_shop_columns', 'loop_columns');
if (!function_exists('loop_columns')) {
function loop_columns() {
if ( is_product_category() || is_product_tag() ) {
return 1;
}
// for other archive pages and shop page
else {
return 3;
}}}
但现在我的SubCategories也显示在一列中,如下所示:
如何使此页面显示3列,例如在商店页面上,而不影响产品的1列显示?
基本上,由于我已经按照我想要的方式展示了商店,通过Woocommerce产品展示设置,我想我需要一种方法来仅定位具有父级的子类别,并让它们显示3列。
欢迎任何想法或建议。
答案 0 :(得分:0)
经过一些试验和错误后,我找到并修改了我在以下位置找到的代码: This site
最困难的是获取进入functions.php的代码。 其余的只是CSS。
这完成了我的工作:
function ym_are_there_subcategories() {
global $wp_query;
$current_page = get_queried_object();
$children = get_term_children( $current_page->term_id, 'product_cat' );
return ( empty( $children ) ? false : true);
}
add_filter( 'loop_shop_columns', 'loop_columns' );
if ( ! function_exists( 'loop_columns' ) ) {
function loop_columns() {
if ( is_shop() || ym_are_there_subcategories() ) {
return 3;
} else {
return 1;
} // end if subcats
} // end loop_columns()
} // end if function_exists
我希望别人觉得它很有用。这对我来说是一个障碍,持续了几天。
显示SubCategories的页面现在如下所示: