ウィジェットのカテゴリで特定のカテゴリを非表示にする方法

カスタマイズ

特定のカテゴリを非表示にする

WordPressのウィジェット「カテゴリー」を設置したとき、特定のカテゴリを非表示にする方法です

カテゴリIDの確認方法

いずれの方法もカテゴリIDの確認が必要となります

カテゴリIDは色々な方法で確認できますが個人的に簡単だと思う方法を確認方法を紹介しておきます

カテゴリ編集ページからカテゴリIDを確認するほ方法

カテゴリ編集ページから確認したいカテゴリ名を編集にするとURLのクエリにパラメータに「&tag_ID=xxx」というのがあるので「xxx」の部分が、そのカテゴリIDになります

CSSで特定カテゴリを非表示にする方法

簡単な方法では、CSSにて特定カテゴリの部分を「display: none」で非表示にする方法があります

ウィジェットにあるカテゴリリストの各カテゴリに付与されているCSSクラス名は一般的に「.cat-item」と「.cat-item-xxx」

xxxの部分がカテゴリIDになっているので、「.cat-item-xxx」を指定して非表示にします

style.css

.cat-item.cat-item-xxx {
  display: none;
}

複数指定したい場合

複数のカテゴリを指定したい場合のCSS記述です

style.css

.cat-item.cat-item-xxx, .cat-item.cat-item-xxx{
  display: none;
}

サイドバー以外でもカテゴリウィジェットを使っている場合

非表示にするカテゴリをサイドバー内に限定したい場合は以下の様に記述します

style.css

#sidebar .cat-item.cat-item-xxx {
  display: none;
}

カテゴリリストから消えない場合

カテゴリリストのデザインによってはaタグの指定も必要かもしれません

style.css

.cat-item.cat-item-xxx a{
  display: none;
}

カテゴリリストで特定カテゴリを読み込まない様にする方法

こちらはウィジェットのカテゴリが一覧を読み込む際に特定のカテゴリを除外させる方法です

function.phpに記述する事で実装可能です

function.php

//指定カテゴリを非表示にする
function exclude_widget_categories($args){
  $args['exclude'] = 'xxx';
  return $args;
}
add_filter( 'widget_categories_args', 'exclude_widget_categories');

widget_categories_argsについて

「widget_categories_args」のフィルターはデフォルトのWordPressウィジェットにあるCategoriesがwp_list_categories()関数に引数を渡す前に使用する事ができ、widget_categories_argsフィルタに各パラメータ設定をフックします

excludeについて

「exclude」は除外するという意味で、categoriesパラメータにて組み込まれているパラメータです(初期値は空)

参考:関数リファレンス/get categories – WordPress Codex 日本語版

複数のカテゴリを除外する方法

複数のカテゴリを除外リストに指定したい場合はカンマで区切って記述します

function.php

//指定カテゴリを非表示にする
function exclude_widget_categories($args){
  $args['exclude'] = 'xxx,xxx,xxx';
  return $args;
}
add_filter( 'widget_categories_args', 'exclude_widget_categories');

カスタマイズ

Posted by Yousuke.U