从类别小部件中隐藏特定类别

时间:2015-06-19 作者:FranticJ3

我试图从我的分类小部件中隐藏大量的分类。我尝试了一些插件,但似乎没有一个愿意让我使用下拉选项。我查看了widget\\u categories\\u args挂钩,这似乎是我想要的,但我无法让它工作。

总之这是我的密码

function widget_categories_args_filter( $cat_args ) {
$exclude_arr = array( 57,61,63,56,55,62,52,53,54,67,65 );

if( isset( $cat_args[\'exclude\'] ) && !empty( $cat_args[\'exclude\'] ) )
    $exclude_arr = array_unique( array_merge( explode( \',\', $cat_args[\'exclude\'] ), $exclude_arr ) );
$cat_args[\'exclude\'] = implode( \',\', $exclude_arr );
return $cat_args;
}

add_filter( \'widget_categories_args\', \'widget_categories_args_filter\', 10, 1 );
我从这里取的:https://codex.wordpress.org/Plugin_API/Filter_Reference/widget_categories_args

我把这个放在我的主题函数中。php。即使函数是为插件设置的,这也不重要,对吗?

5 个回复
SO网友:Kevin

我知道这篇文章很老了,但因为我遇到了同样的问题,这篇文章提出了比一篇更高的解决方案,我想我应该加上这个,这对我来说很有用。

资料来源:http://coffeecupweb.com/how-to-exclude-or-hide-categories-from-category-widget-in-wordpress-sidebar/

//Hide categories from WordPress category widget
function exclude_widget_categories($args){
    $exclude = "1,4,8,57,80";
    $args["exclude"] = $exclude;
    return $args;
}
add_filter("widget_categories_args","exclude_widget_categories");

SO网友:jaripp

This works: https://gist.github.com/peltopiri/76e7d1143e33b424633114103cfae5ec

<?php
function exclude_woocommerce_widget_product_categories($widget_args) {
    //Insert excluded category ids here
    $excludes = array(12,33);
    $includes = explode(",",$widget_args[\'include\']);

    $includes = array_filter($includes, function($value) use ($excludes) {
      return !in_array($value, $excludes);
    });
    $widget_args["include"] = implode(",", $includes);
    return $widget_args;
}
add_filter( \'woocommerce_product_categories_widget_dropdown_args\', \'exclude_woocommerce_widget_product_categories\');
add_filter( \'woocommerce_product_categories_widget_args\', \'exclude_woocommerce_widget_product_categories\');
SO网友:jgangso

隐藏WooCommerce中的未分类/默认类别:

我想我并不是唯一一个来此页面寻找隐藏WooCommerce 3.3中引入的默认/未分类类别的方法的人。

如果您是其中之一,则可以使用以下代码段,而不是对类别ID进行硬编码,因为类别ID在不同的环境/安装中可能不同the snippet by Mike Jolley 要在Woocommerce产品类别小部件中隐藏它,请执行以下操作:

<?php // Do not include this if already open!

/**
 * Code goes in theme functions.php.
 *
 * If you use dropdown instead of hierachical view, 
 * hook to the following filter instead: 
 *      `woocommerce_product_categories_widget_dropdown_args`
 */
add_filter( \'woocommerce_product_categories_widget_args\', \'custom_woocommerce_product_categories_widget_args\' );

function custom_woocommerce_product_categories_widget_args( $args ) {
  $args[\'exclude\'] = get_option( \'default_product_cat\' );
  return $args;
}

SO网友:Brent Baccala

我可以使用CSS隐藏单个类别:

li.cat-item-1 {
    display: none;
}
我把这个CSS片段放在我主题的“附加CSS”中。

第一类是“未分类”,这是我想要隐藏的。

SO网友:kpatrickos

在多次搜索和测试之后,隐藏列表项和下拉列表的帖子类别是单独完成的,因为它们由不同的过滤器ID调用。

对于列表类别项目,请使用

add_filter("widget_categories_args","YOUR_CUSTOM_FUNCTION");
对于下拉类别项目,请使用

add_filter("widget_categories_dropdown_args","YOUR_CUSTOM_FUNCTION");
参考号:https://basicwp.com/exclude-categories-from-category-widgets-in-wordpress/

结束

相关推荐

Categories' hierarchy in URL

我目前正在处理的网站中的帖子都有多个层次分类。例如:Source - Books -- Moby Dick -- Sherlock Holmes 永久链接设置为/%category%/%postname%/. 然而,一篇文章的URL并不包括所有的子类别——我得到的只是site.com/source/books/*postname*, 尽管这篇文章在来源上没有分类,但只在书籍+白鲸上。有人能帮我找出如何调整这种行为吗?非常感谢。