从商店页面隐藏未分类的产品

时间:2018-04-24 作者:WPDavid

当WooCoomerce更新到3.3版时,添加了“未分类”产品类别,然后出现在显示产品的所有页面(包括WooCommerce商店页面),如果有任何具有的产品。所有没有至少一个指定类别的产品随后(逻辑上我猜)被指定为“未分类”类别。

我总是使用(可能不是理想的)方法来隐藏季节性产品,当这些产品过季时,我会从这些产品中删除所有类别。这一新的变化意味着这些“隐藏”产品突然出现在网站上,以这个新类别出售,我不想在任何页面上看到。

我在网上搜索了一种隐藏“未分类”产品类别的方法,发现这个问题很普遍。提出了许多解决方案,包括将“未分类”类别设为子类别,然后使用CSS隐藏所有子类别或隐藏类别。

看见https://wordpress.org/support/topic/uncategorized-product-category-still-showing-after-3-3-1/

然而,这些解决方案都不够“干净”或健壮。

我的解决方法是只显示我希望通过使用product categories短代码(没有未分类的类别id)可见的产品。例如:

[product_categories ids="11, 19, 18, 14, 7, 8, 9, 10, 15, 98, 16, 17"]
但这并不能解决商店页面(不使用短代码)上的问题。

我想知道是否有人有一种可靠的方法来隐藏“未分类”的产品类别,因为这是一个热门话题,目前似乎很普遍。

2 个回复
最合适的回答,由SO网友:Clinton 整理而成

我根据rynoldos善意提供的代码解决了这个问题(https://gist.github.com/rynaldos/a9d357b1e3791afd9bea48833ff95994) 具体如下:

在函数中包含以下代码。php文件:

/** Remove categories from shop and other pages
 * in Woocommerce
 */
function wc_hide_selected_terms( $terms, $taxonomies, $args ) {
    $new_terms = array();
    if ( in_array( \'product_cat\', $taxonomies ) && !is_admin() && is_shop() ) {
        foreach ( $terms as $key => $term ) {
              if ( ! in_array( $term->slug, array( \'uncategorized\' ) ) ) {
                $new_terms[] = $term;
              }
        }
        $terms = $new_terms;
    }
    return $terms;
}
add_filter( \'get_terms\', \'wc_hide_selected_terms\', 10, 3 );
此代码适用于WooCommerce上的商店页面。如果要将其应用于其他页面,请将is\\u shop()替换为is\\u page(“YOUR\\u page\\u SLUG”)。

我也试着找到这个问题的解决方案,但上面的代码对我来说效果很好。

SO网友:Marianne

我找到了一种在商店页面中隐藏未分类类别的简单方法:我用另一个类别更改了其父类别“None”。

希望有帮助:-)

玛丽安

结束

相关推荐

GET_CATEGORIES返回顶级类别而不是子类别

我用下面的代码制作了一个基本的子类别导航菜单。问题出在一个类别上(没有子类别),它将顶级类别作为子类别返回,例如:新闻、未分类等(我尝试分配子类别,但它实际上从菜单中消失,而不是修复内容)这可能是什么原因造成的?function display_category_breadcrumbs () { $current_cat_id = get_cat_id( single_cat_title(\"\",false) ); $parent_cats = get_categ