Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Добавить слово в хлебные крошки

Тема в разделе "Вопросы новичков", создана пользователем DiZeR, 22 июл 2015.

  1. DiZeR

    DiZeR

    Сообщения:
    113
    Симпатии:
    16
    Баллы:
    18
    Подскажите, как правильно в хлебные крошки Woocommerce добавить произвольное слово и артикул, пример:
    Home > катигория > подкатигория > слово товар артикул

    Код breadcrumbs

    Код:
    // get breadcrumbs
    if (!function_exists('venedor_breadcrumbs')):
    function venedor_breadcrumbs() {
        global $venedor_settings, $post, $wp_query, $author;
    
        $delimiter = '<li><span>/</span></li>';
        if ($venedor_settings['breadcrumbs-separator']) {
            $delimiter = '<li><span>'. ($venedor_settings['breadcrumbs-separator'] != '>' ? $venedor_settings['breadcrumbs-separator'] : '&gt;') .'</span></li>';
        }
    
        $prepend = '';
        $before = '<li>';
        $after = '</li>';
        $home = __('Home', 'venedor');
    
        $shop_page_id = false;
        $shop_page = false;
        $front_page_shop = false;
        if ( defined( 'WOOCOMMERCE_VERSION' ) ) {
            $permalinks   = get_option( 'woocommerce_permalinks' );
            $shop_page_id = wc_get_page_id( 'shop' );
            $shop_page    = get_post( $shop_page_id );
            $front_page_shop = get_option( 'page_on_front' ) == wc_get_page_id( 'shop' );
        }
    
        // If permalinks contain the shop page in the URI prepend the breadcrumb with shop
        if ( $shop_page_id && $shop_page && strstr( $permalinks['product_base'], '/' . $shop_page->post_name ) && get_option( 'page_on_front' ) != $shop_page_id ) {
            $prepend = $before . '<a href="' . get_permalink( $shop_page ) . '">' . $shop_page->post_title . '</a> ' . $after . $delimiter;
        }
    
        if ( ( ! is_home() && ! is_front_page() && ! ( is_post_type_archive() && $front_page_shop ) ) || is_paged() ) {
            echo '<ul>';
    
            if ( ! empty( $home ) ) {
                echo $before . '<a class="home" href="' . apply_filters( 'woocommerce_breadcrumb_home_url', home_url() ) . '">' . $home . '</a>' . $after . $delimiter;
            }
    
            if ( is_home() ) {
    
                echo $before . single_post_title('', false) . $after;
    
            } else if ( is_category() ) {
    
                $cat_obj = $wp_query->get_queried_object();
                $this_category = get_category( $cat_obj->term_id );
    
                if ( 0 != $this_category->parent ) {
                    $parent_category = get_category( $this_category->parent );
                    if ( ( $parents = get_category_parents( $parent_category, TRUE, $after . $delimiter . $before ) ) && ! is_wp_error( $parents ) ) {
                        echo $before . substr( $parents, 0, strlen($parents) - strlen($after . $delimiter . $before) ) . $after . $delimiter;
                    }
                }
    
                echo $before . single_cat_title( '', false ) . $after;
    
            } elseif ( is_tax('product_cat') || is_tax('portfolio_cat') || is_tax('portfolio_skills') ) {
    
                echo $prepend;
    
                $current_term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
    
                $ancestors = array_reverse( get_ancestors( $current_term->term_id, get_query_var( 'taxonomy' ) ) );
    
                foreach ( $ancestors as $ancestor ) {
                    $ancestor = get_term( $ancestor, get_query_var( 'taxonomy' ) );
    
                    echo $before . '<a href="' . get_term_link( $ancestor->slug, get_query_var( 'taxonomy' ) ) . '">' . esc_html( $ancestor->name ) . '</a>' . $after . $delimiter;
                }
    
                echo $before . esc_html( $current_term->name ) . $after;
    
            } elseif ( is_tax('product_tag') ) {
    
                $queried_object = $wp_query->get_queried_object();
                echo $prepend . $before . sprintf( __( 'Products tagged &ldquo;%s&rdquo;', 'woocommerce' ), $queried_object->name ) . $after;
    
            } elseif ( is_day() ) {
    
                echo $before . '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a>' . $after . $delimiter;
                echo $before . '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a>' . $after . $delimiter;
                echo $before . get_the_time('d') . $after;
    
            } elseif ( is_month() ) {
    
                echo $before . '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a>' . $after . $delimiter;
                echo $before . get_the_time('F') . $after;
    
            } elseif ( is_year() ) {
    
                echo $before . get_the_time('Y') . $after;
    
            } elseif ( is_post_type_archive('product') && get_option('page_on_front') !== $shop_page_id ) {
    
                $_name = wc_get_page_id( 'shop' ) ? get_the_title( wc_get_page_id( 'shop' ) ) : '';
    
                if ( ! $_name ) {
                    $product_post_type = get_post_type_object( 'product' );
                    $_name = $product_post_type->labels->singular_name;
                }
    
                if ( is_search() ) {
    
                    echo $before . '<a href="' . get_post_type_archive_link('product') . '">' . $_name . '</a>' . $delimiter . sprintf( __( 'Search results for &ldquo;%s&rdquo;', 'woocommerce' ), get_search_query() ) . $after;
    
                } elseif ( is_paged() ) {
    
                    echo $before . '<a href="' . get_post_type_archive_link('product') . '">' . $_name . '</a>' . $after;
    
                } else {
    
                    echo $before . $_name . $after;
    
                }
    
            } elseif ( is_single() && ! is_attachment() ) {
    
                if ( 'product' == get_post_type() ) {
    
                    echo $prepend;
    
                    if ( $terms = wc_get_product_terms( $post->ID, 'product_cat', array( 'orderby' => 'parent', 'order' => 'DESC' ) ) ) {
                        $main_term = $terms[0];
                        $ancestors = get_ancestors( $main_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 ) . '">' . $ancestor->name . '</a>' . $after . $delimiter;
                            }
                        }
    
                        echo $before . '<a href="' . get_term_link( $main_term ) . '">' . $main_term->name . '</a>' . $after . $delimiter;
    
                    }
    
                    echo $before . get_the_title() . $after;
    
                } elseif ( 'post' != get_post_type() ) {
    
                    $post_type = get_post_type_object( get_post_type() );
                    $slug = $post_type->rewrite;
                        echo $before . '<a href="' . get_post_type_archive_link( get_post_type() ) . '">' . $post_type->labels->singular_name . '</a>' . $after . $delimiter;
                    echo $before . get_the_title() . $after;
    
                } else {
    
                    $cat = current( get_the_category() );
                    if ( ( $parents = get_category_parents( $cat, TRUE, $after . $delimiter . $before ) ) && ! is_wp_error( $parents ) ) {
                        echo $before . substr( $parents, 0, strlen($parents) - strlen($after . $delimiter . $before) ) . $after . $delimiter;
                    }
                    echo $before . get_the_title() . $after;
    
                }
    
            } elseif ( is_404() ) {
    
                echo $before . __( 'Error 404', 'woocommerce' ) . $after;
    
            } elseif ( ! is_single() && ! is_page() && get_post_type() != 'post' ) {
    
                $post_type = get_post_type_object( get_post_type() );
    
                if ( $post_type ) {
                    echo $before . $post_type->labels->singular_name . $after;
                }
    
            } elseif ( is_attachment() ) {
    
                $parent = get_post( $post->post_parent );
                $cat = get_the_category( $parent->ID );
                $cat = $cat[0];
                if ( ( $parents = get_category_parents( $cat, TRUE, $after . $delimiter . $before ) ) && ! is_wp_error( $parents ) ) {
                    echo $before . substr( $parents, 0, strlen($parents) - strlen($after . $delimiter . $before) ) . $after . $delimiter;
                }
                echo $before . '<a href="' . get_permalink( $parent ) . '">' . $parent->post_title . '</a>' . $after . $delimiter;
                echo $before . get_the_title() . $after;
    
            } elseif ( is_page() && !$post->post_parent ) {
    
                echo $before . get_the_title() . $after;
    
            } elseif ( is_page() && $post->post_parent ) {
    
                $parent_id  = $post->post_parent;
                $breadcrumbs = array();
    
                while ( $parent_id ) {
                    $page = get_post( $parent_id );
                    $breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title( $page->ID ) . '</a>';
                    $parent_id  = $page->post_parent;
                }
    
                $breadcrumbs = array_reverse( $breadcrumbs );
    
                foreach ( $breadcrumbs as $crumb ) {
                    echo $before . $crumb . $after . $delimiter;
                }
    
                echo $before . get_the_title() . $after;
    
            } elseif ( is_search() ) {
    
                echo $before . sprintf( __( 'Search results for &ldquo;%s&rdquo;', 'woocommerce' ), get_search_query() ) . $after;
    
            } elseif ( is_tag() ) {
    
                    echo $before . sprintf( __( 'Posts tagged &ldquo;%s&rdquo;', 'woocommerce' ), single_tag_title( '', false ) ) . $after;
    
            } elseif ( is_author() ) {
    
                $userdata = get_userdata($author);
                echo $before . sprintf( __( 'Author: %s', 'woocommerce' ), $userdata->display_name ) . $after;
    
            }
    
            if ( get_query_var( 'paged' ) ) {
                echo ' (' . sprintf( __( 'Page %d', 'woocommerce' ), get_query_var( 'paged' ) ) . ')';
            }
    
            echo '</ul>';
        } else {
            if ( is_home() && !is_front_page() ) {
                echo '<ul>';
    
                if ( ! empty( $home ) ) {
                    echo $before . '<a class="home" href="' . apply_filters( 'woocommerce_breadcrumb_home_url', home_url() ) . '">' . $home . '</a>' . $after . $delimiter;
    
                    echo $before . __($venedor_settings['blog-title']) . $after;
                }
    
                echo '</ul>';
            }
        }
    }
    endif;


    Благодарю.
     
    Последнее редактирование: 22 июл 2015
  2. DiZeR

    DiZeR

    Сообщения:
    113
    Симпатии:
    16
    Баллы:
    18
    Нашел нужную стоку, получилось добавить слово, так:
    $text='слово ';

    заменил:
    echo $before . get_the_title() . $after;
    на
    echo $before . $text . get_the_title() . $after;

    Получилось
    Home > катигория > подкатигория > слово товар