+ Ответить в теме
Показано с 1 по 2 из 2

Тема: Хлебные крошки breadcrumbs

  1. #1
    Новичок 1495sanek1495 на пути к лучшему Аватар для 1495sanek1495
    Регистрация
    01.10.2018
    Сообщений
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Хлебные крошки breadcrumbs

    Здравствуйте, есть код function для хлебных крошек, в нем реализована микроразметка, проблема в том что данный код выводит одинаковый уровень вложенности для страниц и дочерних страниц


    function the_breadcrumb(){
    echo '<div itemscope itemtype="http://schema.org/BreadcrumbList" id="breadcrumbs">';
    global $post;
    if(!is_home()){
    echo '<span itemscope itemprop="itemListElement" itemtype="http://schema.org/ListItem">
    <a rel="nofollow" itemprop="item" title="Главная" href="'.site_url().'">
    <span itemprop="name">На Главную</span>
    <meta itemprop="position" content="1" />
    </a>
    </span> &larr; ';

    if(is_single()){ // записи
    echo '<span itemscope itemprop="itemListElement" itemtype="http://schema.org/ListItem">';
    $categories = get_the_category();
    if($categories[0]){
    echo '<a itemprop="item" title="'.$categories[0]->name.'" href="' . get_category_link($categories[0]->term_id ) . '">
    <span itemprop="name">'.$categories[0]->name.'</span>
    <meta itemprop="position" content="2" />
    </a>';
    }
    echo '</span> &larr;';
    }

    if(is_page()) { // страницы
    if ($post->post_parent ) {
    $parent_id = $post->post_parent;
    $breadcrumbs = array();
    while ($parent_id) {
    $page = get_page($parent_id);
    $breadcrumbs[] = ' <span itemscope itemprop="itemListElement" itemtype="http://schema.org/ListItem">
    <a itemprop="item" title="'.get_the_title($page->ID).'" href="'. get_permalink($page->ID).'">
    <span itemprop="name">'.get_the_title($page->ID).'</span>
    <meta itemprop="position" content="2" />
    </a>
    </span>';
    $parent_id = $page->post_parent;
    }
    $breadcrumbs = array_reverse($breadcrumbs);
    foreach ($breadcrumbs as $crumb) echo $crumb . ' → ';
    }
    // echo the_title();
    }

    elseif (is_category()) { // категории
    global $wp_query;
    $obj_cat = $wp_query->get_queried_object();
    $current_cat = $obj_cat->term_id;
    $current_cat = get_category($current_cat);
    $parent_cat = get_category($current_cat->parent);
    single_cat_title();
    if ($current_cat->parent != 0)
    // echo(get_category_parents($parent_cat, TRUE, ' → '));
    echo ' <span itemscope itemprop="itemListElement" itemtype="http://schema.org/ListItem">
    <a itemprop="item" title="'.$parent_cat->cat_name.'" href="'. get_category_link($parent_cat, TRUE, '').'">
    <span itemprop="name">'.$parent_cat->cat_name.'</span>
    <meta itemprop="position" content="2" />
    </a>
    </span> &larr;';
    }

    elseif (is_search()) {
    echo 'Результаты поиска по запросу "' . get_search_query() . '"';
    }
    elseif (is_tag()) {
    echo 'Страница тега "';
    echo single_tag_title('', false);
    echo '"';
    }
    elseif (is_year()) {
    echo get_the_time('Y');
    echo ' г.';
    }
    elseif (is_month()) {
    echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . ' г.</a> &larr; ';
    }
    elseif (is_day()) {
    echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> г. &larr; ';
    echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m') ) . '">' . get_the_time('F') . '</a> &larr; ';
    }
    elseif (is_author()) {
    echo 'Страница автора';
    }
    elseif (is_404()) { // если страницы не существует
    echo 'Ошибка 404';
    }
    if (get_query_var('paged')) // номер текущей страницы
    echo ' (' . get_query_var('paged').'-я страница)';

    } else {
    $pageNum=(get_query_var('paged')) ? get_query_var('paged') : 1;
    if($pageNum>1)
    echo '<a href="'.site_url().'">На Главную</a> &raquo; '.$pageNum.'-я страница';
    else
    echo '';
    }
    echo '</div>';
    }






    пример:

    <div itemscope itemtype="http://schema.org/BreadcrumbList" id="breadcrumbs"><span itemscope itemprop="itemListElement" itemtype="http://schema.org/ListItem">
    <a rel="nofollow" itemprop="item" title="Главная" href="https://сайт">
    <span itemprop="name">На Главную</span>
    <meta itemprop="position" content="1" />
    </a>
    </span> &larr; <span itemscope itemprop="itemListElement" itemtype="http://schema.org/ListItem">
    <a itemprop="item" title="" href="https://сайт/страница 1/">
    <span itemprop="name">имя</span>
    <meta itemprop="position" content="2" /> / функция выводит 2 уровень вложенности для страницы
    </a>
    </span> → <span itemscope itemprop="itemListElement" itemtype="http://schema.org/ListItem">
    <a itemprop="item" title="" href="https://сайт/страница 1/страница 1.1/">
    <span itemprop="name">имя</span>
    <meta itemprop="position" content="2" /> // так же выводит 2 уровень вложенности для дочерней страницы
    </a>
    </span> → </div><ul class="breadcrumbs">






    подскажите пожалуйста, что нужно изменить в коде функции чтобы дочерние страницы соответствовали уровню вложенности? спасибо

  2. #2
    Местный Degradator скоро придёт к известности Аватар для Degradator
    Регистрация
    02.07.2012
    Сообщений
    1,939
    Thanks
    141
    Thanked 144 Times in 144 Posts
    Давайте наверно начнем с того что вы отфарматируете свой код. Добавте отступы слева, обернете это все в специальный блок, который отображает php код.

+ Ответить в теме

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 16.07.2013, 18:57
  2. Хлебные крошки
    от sergey-g в разделе PHP
    Ответов: 3
    Последнее сообщение: 30.05.2011, 10:58

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения