我正在 WordPress 4.6.1 上设置 Woocommerce 2.6.7。
我在 WooCommerce 设置/产品展示中的设置:
'商店页面显示' = '显示类别'
'默认类别显示' = '显示子类别'。
我的目标是让商店页面和显示子类别的页面的布局都显示为 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;
}}}
但现在我的子类别也显示在一列中,如下所示:
如何让这个页面显示 3 列,就像在商店页面上一样,而不影响产品的 1 列显示?
本质上,由于我已经通过 Woocommerce 产品显示设置以我想要的方式显示商店,我认为我需要一种方法来仅定位具有父级的子类别,并让它们显示 3 列。
欢迎提出任何想法或建议。
最佳答案
经过反复试验,我发现并更改了我在以下位置找到的代码: 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
我希望其他人觉得它有用。这让我困惑了好几天。
显示子类别的页面现在如下所示:
关于wordpress - 与父级一起显示 WooCommerce 产品子类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40454570/