wordpress - 与父级一起显示 WooCommerce 产品子类别

标签 wordpress woocommerce customization

我正在 WordPress 4.6.1 上设置 Woocommerce 2.6.7。

我在 WooCommerce 设置/产品展示中的设置:

'商店页面显示' = '显示类别'
'默认类别显示' = '显示子类别'。

我的目标是让商店页面和显示子类别的页面的布局都显示为 3 列,如屏幕截图:

screenshot1

要让实际显示属于某个类别或子类别的产品的页面显示在一列中。我是 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;
    }}}

但现在我的子类别也显示在一列中,如下所示:

screenshot2

如何让这个页面显示 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

我希望其他人觉得它有用。这让我困惑了好几天。

显示子类别的页面现在如下所示:

screenshot

关于wordpress - 与父级一起显示 WooCommerce 产品子类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40454570/

相关文章:

php - 如何修复此错误 XML 解析错误 : not well-formed

php - Woocommerce 限制字数产品类别描述文本

php - 将自定义字段添加到管理产品 在 WooCommerce 3.2+ 中批量编辑

ios - 自定义 UIAlertView 上的按钮

javascript - 如何为 SaaS 解决方案贴上白标?

java - 我只收到文本和图像 : Wordpress REST API app in Android studio

javascript - 使用 css 添加图标 :before

php - 将 Woocommerce 订阅更新和同步到自定义日期

pdf - 使用 iTextSharp 自定义 PDFStamper

wordpress - 根据产品元更改 WooCommerce 购物车商品价格的问题