web-dev-qa-db-ja.com

カテゴリウィジェットから特定のカテゴリを隠す

カテゴリウィジェットから大量のカテゴリを隠そうとしています。私はいくつかのプラグインを試しましたが、どれもドロップダウンオプションを使わせたくないようです。私はwidget_categories_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

私はこれを私のテーマのfunctions.phpに入れています。関数がプラグイン用に設定されていても、問題にはならないでしょう。

5
FranticJ3

私はこの記事がかなり古いことを知っていますが、私は同じ問題に遭遇し、この記事が1つ以上の解決策で登場したので、私はこれを追加したいと考えました。

ソース: 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");
6
Kevin

いくつかの検索とテストの後、リストアイテムとドロップダウンの投稿カテゴリを隠すことは別々のフィルタ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/

0
kpatrickos

WooCommerceのカテゴリー化されていない/デフォルトのカテゴリを非表示にします。

WooCommerce 3.3で導入された デフォルト/未分類のカテゴリ を隠す方法を探してこのページに来たのは私だけではないと思います。

あなたがそれらのうちの1人なら、異なる環境/インストールで異なるかもしれないカテゴリIDをハードコーディングする代わりに、それを隠すために Mike Jolleyによるスニペット から変更された以下のスニペットを使うことができますWoocommerce Product Categoriesウィジェット:

<?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;
}
0
jgangso

これは動作します: 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');
0
jaripp