Ejemplo n.º 1
0
function ps_get_taxonomy_parents($term_id, array $terms = array())
{
    $obTerm = get_term($term_id, 'product_cat');
    if (!empty($obTerm->parent)) {
        $terms = ps_get_taxonomy_parents($obTerm->parent, $terms);
    }
    $terms[] = $obTerm;
    return $terms;
}
Ejemplo n.º 2
0
/**
 * Рендеринг навигации "хлебных крошек"
 * @param $content
 * @return mixed
 */
function showBreadCrumbs($content)
{
    global $post;
    if ((@$post->post_type != 'ps_catalog' || !is_single()) && !is_tax('ps_category') && !is_post_type_archive('ps_catalog')) {
        return;
    }
    $delimiter = '»';
    // разделить между ссылками
    $home = 'Home';
    // текст ссылка "Главная"
    $before = '<span class="current">';
    $after = '</span>';
    if (!is_home() && !is_front_page() || is_paged()) {
        echo '<div id="crumbs">';
        global $post;
        $homeLink = get_bloginfo('url');
        echo '<a href="' . $homeLink . '">' . $home . '</a> ' . $delimiter . ' ';
        if (!is_post_type_archive('ps_catalog')) {
            echo '<a href="' . get_post_type_archive_link('ps_catalog') . '">' . get_post_type_object('ps_catalog')->labels->name . '</a> ';
        } else {
            echo $before . get_post_type_object('ps_catalog')->labels->name . $after;
        }
        if (is_tax('ps_category')) {
            global $wp_query;
            $cat = $wp_query->get_queried_object();
            $taxonomies = ps_get_taxonomy_parents($cat->parent);
            foreach ($taxonomies as $obTerm) {
                if (get_class($obTerm) !== 'WP_Error') {
                    echo ' ' . $delimiter . ' ' . ' <a href="' . get_category_link($obTerm) . '" title="' . esc_attr(sprintf(__("Посмотреть все товары в категории %s"), $obTerm->name)) . '">' . $obTerm->name . '</a>';
                }
            }
            echo ' ' . $delimiter . ' ' . $before . ' ' . $cat->name . ' ' . $after;
        } elseif (is_single() && !is_attachment()) {
            $cat = get_the_terms($post->ID, 'ps_category');
            if (is_array($cat)) {
                foreach ($cat as $obCat) {
                    $cat = $obCat;
                    break;
                }
                $taxonomies = ps_get_taxonomy_parents($cat->parent);
                $taxonomies[] = $cat;
                foreach ($taxonomies as $obTerm) {
                    if (get_class($obTerm) !== 'WP_Error') {
                        echo ' ' . $delimiter . ' <a href="' . get_category_link($obTerm) . '" title="' . esc_attr(sprintf(__("Посмотреть все товары в категории %s"), $obTerm->name)) . '">' . $obTerm->name . '</a>';
                    }
                }
            }
            echo ' ' . $delimiter . ' ';
            echo $before . get_the_title() . $after;
        }
        echo '</div>';
    }
}