サポート » 使い方全般 » パンくずリストで特定のカテゴリを除外したい

  • keiichiy

    (@keiichiy)


    パンくずリストにて、特定のカテゴリを非表示にしたいと考えています。
    例えば、
    Top > Seminar > Pick Up > Class A
    という構造があった場合、
    Pick Upという表記を非表示にし、
    Top > Seminar > Class A
    のように表示したいと考えています。

    非表示にするカテゴリは、
    投稿の設定では選択されており、
    単にパンくずでの表示のみ無視したいという感じです。
    また、無視したいカテゴリは複数あります。

    現在、プラグイン「Prime Strategy Bread Crumb」を使っています。
    良いアイデアがあれば、
    どうぞよろしくお願い致します。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • モデレーター jim912

    (@jim912)

    Prime Strategy Bread Crumb のパンくずリストは、表示される前に、「bread_crumb_arr」というフィルターフックで、表示するリストの項目を配列で受け取り、カスタマイズすることが出来るようになっています。

    配列の内容は、パンくずリストで表示する項目の最初から並んでおり、項目毎に、パンくずリストとして表示する文字列とリンク先のURLで構成されています。

    例えば、質問の例では、フィルターフックで受け取る配列の内容は

    配列の最初:Topの表示名とリンク先
    配列の2番目:Seminarの表示名とリンク先
    配列の3番目:Pick Upの表示名とリンク先
    配列の4番目:Class Aの表示名とリンク先

    となっています。

    このとき、Pick Up を表示しないようにするには、配列の3番目をなくしてしまえば、Pick Upが表示されないようになります。

    これを実際のコードとして表すと、functions.php に

    function custom_bread_crumb_arr( $bread_crumb_arr ) {
    	unset( $bread_crumb_arr[2] );
    	return $bread_crumb_arr;
    }
    add_filter( 'bread_crumb_arr', 'custom_bread_crumb_arr' );

    のように記述します。

    ただし、この場合は、どのページにおいても、パンくずリストの3番目の項目が表示されなくなってしまいます。

    必要なときにのみ、3番目の項目を非表示にするには、条件分岐タグを用いて、必要なケースにのみ、項目が非表示となるようにしてください。下記は、is_single なので、投稿の詳細を表示したときにのみ有効となります。

    function custom_bread_crumb_arr( $bread_crumb_arr ) {
    	if ( is_single() ) {
    		unset( $bread_crumb_arr[2] );
    	}
    	return $bread_crumb_arr;
    }
    add_filter( 'bread_crumb_arr', 'custom_bread_crumb_arr' );

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「パンくずリストで特定のカテゴリを除外したい」には新たに返信することはできません。