web-dev-qa-db-ja.com

階層リンクナビゲーションで1つのカテゴリのみを表示する方法

WordPressにブレッドクラムナビゲーションを追加しましたが、1つ問題が発生しています。これがブレッドクラムのfunction.phpコードです。

function ux_breadcrumbs() {
    if (!is_home()) {
        echo '<a href="';
        echo get_option('home');
        echo '">';
        bloginfo('name');
        echo "</a> » ";
        if (is_category() || is_single()) {
            the_category('/');
            echo " » ";
            if (is_single()) {
                echo "  ";
                the_title();
            }
        } elseif (is_page()) {
            echo the_title();
        }
    }
}

上記のコードは投稿のすべてのカテゴリを表示しています。 1つのカテゴリだけを表示したいだけです。前もって感謝します!

更新: /助けてくれてありがとう...これがもう一つある:

ブレッドクラムにカテゴリ>サブカテゴリがある場合に表示する方法を知りたいです。

1
Hardeep Asrani

投稿のカテゴリー配列を取得するために使用されるget_the_category()関数、および配列の最初の項目を取得するために使用されるarray_shift()関数。

あなたはおそらくこれが必要です -

function ux_breadcrumbs() {
    if (!is_home()) {
        echo '<a href="';
        echo get_option('home');
        echo '">';
        bloginfo('name');
        echo "</a> » ";
        if (is_category() || is_single() )
        {
            if( is_category() )
            {
                single_term_title();
            }
            elseif (is_single() )
            {
                echo " » ";
                $cats = get_the_category( get_the_ID() );
                $cat = array_shift($cats);
                echo '<a href="' . esc_url( get_category_link( $cat->term_id ) ) . '" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $cat->name ) ) . '">'. $cat->name .'</a>';
                echo "  ";
                the_title();
            }
        } elseif (is_page()) {
            echo the_title();
        }
    }
}
1
Shazzad