WordPressでプラグインなしに表示するパンくずリストから特定のカテゴリーの除外する方法
この記事は2012年10月に公開したものです(13年以上前)。当時の情報にもとづいており、現在の仕様とは異なる場合があります。
階層が深くなればなるほど、特定のカテゴリーをパンくずリストに出したくない、という場面が出てくるはず。
探しても探しても発見できなかったので、次困ったときのために。
まず、パンくずリストを表示させる方法から。
functions.phpに下記コードを追加します。
[php]
- ‘;
- ホーム
- » “. get_category_parents( $cat, TRUE, ” » ” ) .”
- » アーカイブ
- » 検索結果
- » 404 Not Found
- » ‘. get_category_parents( $category_id, TRUE, ” » ” );
echo the_title(”,”, FALSE) .” - » “.the_title(”,”, FALSE).”
- » ‘. strip_tags( apply_filters( ‘single_post_title’, get_the_title( $ancestor ) ) ) .’
- » ‘. strip_tags( apply_filters( ‘single_post_title’, get_the_title( $ancestor ) ) ) .’
// Add the Home link
echo ‘
‘;
if ( is_category() )
{
$catTitle = single_cat_title( “”, false );
$cat = get_cat_ID( $catTitle );
echo “
“;
}
elseif ( is_archive() && !is_category() )
{
echo “
“;
}
elseif ( is_search() ) {
echo “
“;
}
elseif ( is_404() )
{
echo “
“;
}
elseif ( is_single() )
{
$category = get_the_category();
$category_id = get_cat_ID( $category[0]->cat_name );
echo ‘
“;
}
elseif ( is_page() )
{
$post = $wp_query->get_queried_object();
if ( $post->post_parent == 0 ){
echo “
“;
} else {
$title = the_title(”,”, FALSE);
$ancestors = array_reverse( get_post_ancestors( $post->ID ) );
array_push($ancestors, $post->ID);
foreach ( $ancestors as $ancestor ){
if( $ancestor != end($ancestors) ){
echo ‘
‘;
} else {
echo ‘
‘;
}
}
}
}
// End the UL
echo “
“;
}
}
?>
[/php]
下記のコードをパンくずリストを表示させたいテンプレートに書きます。
[php]
[/php]
参考サイトはこちら
http://blog.playunderworld.com/web/how-to-breadcrumbs-in-wordpress/
これだけだと、すべてのカテゴリーが表示されます。
しかし、特定のカテゴリーを表示したくない場合、どうするのか。
get_category_parentsを変更し、my_category_parentsという独自関数を作成します。
functions.phpに下記コードを追加します。
[php]
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( 除外したいカテゴリーのID ) ) ) {
if ( $link )
$chain .= ‘http://ja.forums.wordpress.org/topic/6214
先に書いた、パンくずリストを表示する get_breadcrumbs のコードの中の get_category_parents を my_get_category_parents に変更します。
これで特定のカテゴリーの除外したパンくずリストが実現します。
ウェブサイトの制作・改善や、社内の困りごとのご相談を承っています。
相談してみる