Добавление «Дома» в начале панировочных сухарей - PullRequest
0 голосов
/ 12 января 2020

У меня проблемы с форматированием хлебных крошек на моем промежуточном сайте. Я уже настраивал их на правильные категории, но родительская категория продолжала отображать неправильную категорию (которую я исправил, но ...). Исправление привело к исчезновению опции «home». Я не знаю ни одного php и безуспешно пытался понять, как добавить опцию «Домой» на каждой странице перед категорией. Ниже приведен код, который я использую сейчас. У кого-нибудь есть идеи?

if ( ! empty( $breadcrumb ) ) {

    echo $wrap_before;

    if ( is_single() && get_post_type() == 'product' ) {

        echo $prepend;

        if ( $terms = get_the_terms( $post->ID, 'product_cat' ) ) {

            $referer = wp_get_referer();

            $printed = array();

            foreach( $terms as $term){

                if(in_array($term->id, $printed)) continue;

                $referer_slug = (strpos($referer, '/'.$term->slug.'/'));

                if(!$referer_slug==false){

                    $printed[] = $term->id;

                    $category_name = $term->name;
                    $ancestors = get_ancestors( $term->term_id, 'product_cat' );
                    $ancestors = array_reverse( $ancestors );

                    foreach ( $ancestors as $ancestor ) {
                        $ancestor = get_term( $ancestor, 'product_cat' );

                        if ( ! is_wp_error( $ancestor ) && $ancestor )
                            echo $before . '<a href="' . get_term_link( $ancestor->slug, 'product_cat' ) . '">' . $ancestor->name . '</a>' . $after . $delimiter;
                    }

                    echo $before . '<a href="' . get_term_link( $term->slug, 'product_cat' ) . '">' . $category_name . '</a>' . $after . $delimiter;
                }
            }

        }

        echo $before . get_the_title() . $after;

    } else {

        foreach ( $breadcrumb as $key => $crumb ) {

            echo $before;

            if ( ! empty( $crumb[1] ) && sizeof( $breadcrumb ) !== $key + 1 ) {
                echo '<a href="' . esc_url( $crumb[1] ) . '">' . esc_html( $crumb[0] ) . '</a>';
            } else {
                echo esc_html( $crumb[0] );
            }

            echo $after;

            if ( sizeof( $breadcrumb ) !== $key + 1 ) {
                echo $delimiter;
            }

        }
    }

    echo $wrap_after;

}

Спасибо за помощь заранее!

1 Ответ

0 голосов
/ 12 января 2020

Я думаю, что вы можете добиться этого, изменив следующую строку echo $wrap_before; на эту:

echo $wrap_before.'<a href="/" title="Home">Home</a> »';
...