Title: 【パンくず】で特定のカテゴリーの除外
Last modified: 2011年2月14日

---

# 【パンくず】で特定のカテゴリーの除外

 *  [love-san](https://ja.wordpress.org/support/users/love-san/)
 * (@love-san)
 * [15年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e3%80%90%e3%83%91%e3%83%b3%e3%81%8f%e3%81%9a%e3%80%91%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%81%ae%e9%99%a4%e5%a4%96/)
 * 記事詳細ページとアーカイブで『パンくず』を表示させています。特定のカテゴリーのみ
   を『非表示』にする方法はないでしょうか？
 * 親カテゴリーで表示させたくないカテゴリーがあり、どうにか非表示にする方法を探し
   ています。（ショッピングカートプラグインを使用しておりまして、その関係でこの親
   カテゴリーは削除できず、非表示にするしかありません）。
    ご教授のほど宜しくお願い
   します。
 * ↓パンくずリスト部です。
 *  <?php
    $cat_now = get_the_category(); $cat_now = $cat_now[0]; echo(get_category_parents(
   $cat_now, true, ” > “)); single_post_title(); ?>
 * どのようにカスタマイズすればよいか、宜しくお願いします。

9件の返信を表示中 - 1 - 9件目 (全9件中)

 *  [jim912](https://ja.wordpress.org/support/users/jim912/)
 * (@jim912)
 * [15年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e3%80%90%e3%83%91%e3%83%b3%e3%81%8f%e3%81%9a%e3%80%91%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%81%ae%e9%99%a4%e5%a4%96/#post-136274)
 * love-sanさん、こんにちは。
 * 特定のカテゴリーの条件はどのようなものでしょうか。それが分からないとどうすれば
   良いというのも答えにくいです。
 * たとえば、一番上位のカテゴリーを非表示にするのであれば、[get_category_parents](http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/get_category_parents)
   のコードをちょこっとだけ変えて、独自関数で実装するのがよさげな気がします。
 * get_category_parents
 *     ```
       function get_category_parents( $id, $link = false, $separator = '/', $nicename = false, $visited = array() ) {
       	$chain = '';
       	$parent = &get_category( $id );
       	if ( is_wp_error( $parent ) )
       		return $parent;
   
       	if ( $nicename )
       		$name = $parent->slug;
       	else
       		$name = $parent->name;
   
       	if ( $parent->parent && ( $parent->parent != $parent->term_id ) && !in_array( $parent->parent, $visited ) ) {
       		$visited[] = $parent->parent;
       		$chain .= get_category_parents( $parent->parent, $link, $separator, $nicename, $visited );
       	}
   
       	if ( $link )
       		$chain .= '<a href="' . get_category_link( $parent->term_id ) . '" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $parent->name ) ) . '">'.$name.'</a>' . $separator;
       	else
       		$chain .= $name.$separator;
       	return $chain;
       }
       ```
   
 * my_category_parents (テーマのfunctions.phpに記述)
 *     ```
       function my_category_parents( $id, $link = false, $separator = '/', $nicename = false, $visited = array() ) {
       	$chain = '';
       	$parent = &get_category( $id );
       	if ( is_wp_error( $parent ) )
       		return $parent;
   
       	if ( $nicename )
       		$name = $parent->slug;
       	else
       		$name = $parent->name;
   
       	if ( $parent->parent && ( $parent->parent != $parent->term_id ) && !in_array( $parent->parent, $visited ) ) {
       		$visited[] = $parent->parent;
       		$chain .= my_category_parents( $parent->parent, $link, $separator, $nicename, $visited );
       	}
       	if ( $parent->parent ) {
       		if ( $link )
       			$chain .= '<a href="' . get_category_link( $parent->term_id ) . '" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $parent->name ) ) . '">'.$name.'</a>' . $separator;
       		else
       			$chain .= $name.$separator;
       	}
       	return $chain;
       }
       ```
   
 * あとは、例示コードのget_category_parentsをmy_category_parentsに変更
 *  トピック投稿者 [love-san](https://ja.wordpress.org/support/users/love-san/)
 * (@love-san)
 * [15年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e3%80%90%e3%83%91%e3%83%b3%e3%81%8f%e3%81%9a%e3%80%91%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%81%ae%e9%99%a4%e5%a4%96/#post-136281)
 * gim912さま
 * 早速のアドバイスありがとうございます。
 * 質問があいまいだったようで申し訳ありませんm(_._)m
 * 『特定のカテゴリー』というのは、『指定したカテゴリーIDだけを非表示にできないか？』
   という意味で質問させて頂きました。
 * カテゴリーを再度確認してみましたが、カテゴリーの段数指定の場合は『最上位と上から
   ２段目』のカテゴリーの非表示が希望です。
 * カテゴリーIDを指定して非表示にする／もしくは最上位と上から２段目のカテゴリーを
   非表示にする、いずれかの方法がありましたら教えて頂けますでしょうか。
 * 宜しくお願いします。
 *  [jim912](https://ja.wordpress.org/support/users/jim912/)
 * (@jim912)
 * [15年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e3%80%90%e3%83%91%e3%83%b3%e3%81%8f%e3%81%9a%e3%80%91%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%81%ae%e9%99%a4%e5%a4%96/#post-136310)
 * love-sanさん、こんにちは。
 * IDが固定であるなら上記の
 *     ```
       if ( $parent->parent ) {
       ```
   
 * を
 *     ```
       if ( ! in_array( $parent->term_id, array( n1, n2, n3 ) ) ) {
       ```
   
 * みたいな感じでいいのではないかと思います。（n1, n2…はカテゴリーのID）
    カテゴリー
   の階層で判別させるのであれば、内部カウンターを参照渡しにして、階層毎にカウントアップ
   させ、１or２階層目はif分岐で除外するようなロジックになるかと思います。
 *  トピック投稿者 [love-san](https://ja.wordpress.org/support/users/love-san/)
 * (@love-san)
 * [15年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e3%80%90%e3%83%91%e3%83%b3%e3%81%8f%e3%81%9a%e3%80%91%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%81%ae%e9%99%a4%e5%a4%96/#post-136326)
 * jim912さま
 * ご丁寧なアドバイスありがとうございました。
 * おかげさまでうまく非表示にすることができました。
 *  トピック投稿者 [love-san](https://ja.wordpress.org/support/users/love-san/)
 * (@love-san)
 * [15年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e3%80%90%e3%83%91%e3%83%b3%e3%81%8f%e3%81%9a%e3%80%91%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%81%ae%e9%99%a4%e5%a4%96/#post-136328)
 * jim912さま
 * すいません、非表示にできましたが、今度はwordpressの管理画面が真っ白になってしま
   いました。
 * 管理画面は真っ白で何も操作出来ないのですが、サイト自体はちゃんと動いています。
 * エラーログを見ると、function.phpのmy_category_parents のコードを挿入した部分が
   原因のようです。（コードを削除するとまた管理画面が復活します。）
 * 以下のように単に<?php～?>を付けて挿入したのですが、何か記述方法がおかしかった
   のでしょうか？
 * <?php
    function my_category_parents( $id, $link = false, $separator = ‘/’, $nicename
   = false, $visited = array() ) { $chain = ”; $parent = &get_category( $id ); if(
   is_wp_error( $parent ) ) return $parent;
 *  if ( $nicename )
    $name = $parent->slug; else $name = $parent->name;
 *  if ( $parent->parent && ( $parent->parent != $parent->term_id ) && !in_array(
   $parent->parent, $visited ) ) {
    $visited[] = $parent->parent; $chain .= my_category_parents(
   $parent->parent, $link, $separator, $nicename, $visited ); } if ( ! in_array(
   $parent->term_id, array( 12, 13, 61 ) ) ) { if ( $link ) $chain .= ‘term_id ).‘”
   title=”‘ . esc_attr( sprintf( __( “View all posts in %s” ), $parent->name ) ).‘”
   >’.$name.’‘ . $separator; else $chain .= $name.$separator; } return $chain; }?
   >
 * 宜しくお願いします。
 *  [Mee](https://ja.wordpress.org/support/users/keisakamoto/)
 * (@keisakamoto)
 * [15年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e3%80%90%e3%83%91%e3%83%b3%e3%81%8f%e3%81%9a%e3%80%91%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%81%ae%e9%99%a4%e5%a4%96/#post-136354)
 *     ```
       $chain .= 'term_id ) . '" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $parent->name ) ) . '">'.$name.'' . $separator;
       ```
   
 * の部分でPHPエラーになっているのでは？
 *  トピック投稿者 [love-san](https://ja.wordpress.org/support/users/love-san/)
 * (@love-san)
 * [15年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e3%80%90%e3%83%91%e3%83%b3%e3%81%8f%e3%81%9a%e3%80%91%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%81%ae%e9%99%a4%e5%a4%96/#post-136356)
 * k0420さま
 * すいません、どのように修正すればよいのでしょうか？
 *  [jim912](https://ja.wordpress.org/support/users/jim912/)
 * (@jim912)
 * [15年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e3%80%90%e3%83%91%e3%83%b3%e3%81%8f%e3%81%9a%e3%80%91%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%81%ae%e9%99%a4%e5%a4%96/#post-136362)
 * love-sanさん、こんにちは。
 * エラーメッセージを表示させてどのようなエラーが生じているか確認するのが、試行錯誤
   がなく、最も手っ取り早いのですが。。。
    テーマのfunctions.phpは、サイトであろう
   が、管理画面であろうが読み込まれるため、functions.phpの記述にあるなら、サイト
   の表示も行われないはずです。 あと、考えられるとすれば、使用しているプラグイン（
   管理画面でのみ利用されるものがあやしい？）との関数名競合です。
 * my_category_parentsではなく、他の名前にしてみてはどうでしょうか。
    （冒頭のfunction
   my_category_parents、関数内のmy_category_parents、およびパンくずナビ部分の計３
   箇所）
 *  トピック投稿者 [love-san](https://ja.wordpress.org/support/users/love-san/)
 * (@love-san)
 * [15年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e3%80%90%e3%83%91%e3%83%b3%e3%81%8f%e3%81%9a%e3%80%91%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%81%ae%e9%99%a4%e5%a4%96/#post-136395)
 * jim912さま
 * アドバイスありがとうございます。
 * 関数名をいくつか変えて試してみましたが、残念ながらうまくいきませんでした。
 * エラーログはを見てみると、
 * PHP Warning: Cannot modify header information – headers already sent by (output
   started at /functions.php:448) in /wp-login.php on line 337
 * PHP Warning: Cannot modify header information – headers already sent by (output
   started at /functions.php:448) in /wp-includes/pluggable.php on line 699, referer:/
   wp-login.php?
 * などが出ています（function.phpはコードを設置している先頭行）。
 * 他に何か考えられる要因はありますでしょうか？
 * 宜しくお願いします。

9件の返信を表示中 - 1 - 9件目 (全9件中)

 トピック「【パンくず】で特定のカテゴリーの除外」には新たに返信することはできません。

## タグ

 * [カテゴリー](https://ja.wordpress.org/support/topic-tag/%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc/)
 * [パンくず](https://ja.wordpress.org/support/topic-tag/%e3%83%91%e3%83%b3%e3%81%8f%e3%81%9a/)
 * [除外](https://ja.wordpress.org/support/topic-tag/%e9%99%a4%e5%a4%96/)
 * [非表示](https://ja.wordpress.org/support/topic-tag/%e9%9d%9e%e8%a1%a8%e7%a4%ba/)

 * フォーラム: [使い方全般](https://ja.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 9件の返信
 * 3人の参加者
 * 最後の返信者: [love-san](https://ja.wordpress.org/support/users/love-san/)
 * 最後の活動: [15年、 8ヶ月前](https://ja.wordpress.org/support/topic/%e3%80%90%e3%83%91%e3%83%b3%e3%81%8f%e3%81%9a%e3%80%91%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%81%ae%e9%99%a4%e5%a4%96/#post-136395)
 * 状態: 未解決

## トピック

### 人気のトピック

### 返信がないトピック

### サポート関連ではないトピック

### 解決済みのトピック

### 未解決のトピック

### すべてのトピック
