#1 2015-04-09 11:26

zveruka
Пользователь

breadcrumb реализация микроразметки

Добрый день.

Вот такой код:

Код:

<div class="breadcrumb" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
        <a href="/" itemprop="url">
            <span itemprop="title">главная</span></a>&nbsp;&nbsp;&nbsp;&gt;&nbsp;&nbsp;&nbsp;
        <div itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
            {if $breadcrumbs = shopShop::breadcrumbscategory($category)}
                {foreach $breadcrumbs as $breadcrumb}
            <a href="{$breadcrumb.url}" itemprop="url">
                <span itemprop="title">{$breadcrumb.name|escape}</span></a>&nbsp;&nbsp;&nbsp;&gt;&nbsp;&nbsp;&nbsp;
                {/foreach}
            {/if}
                <div itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
                        <a href="" itemprop="url"><span class="last_span" itemprop="title">{$category.name|escape}</span></a>
                </div>
        </div>
</div>

для такой структуры Главная>Категория_1>Категория_2 работает нормально - скриншот

а когда добавляется еще одна итерация  Главная>Категория_1>Категория_2>Товар - скриншот выводится не правильно
нужно в цикле, где выводятся Категория_1>Категория_2 вставить div с микроразметкой.

Подскажите, пожалуйста, как это сделать

Неактивен

 

#2 2015-04-09 12:25

Kerbo
Пользователь

Re: breadcrumb реализация микроразметки

Как то так вроде

Код:

<div class="breadcrumb" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
        <a href="/" itemprop="url">
            <span itemprop="title">главная</span></a>&nbsp;&nbsp;&nbsp;&gt;&nbsp;&nbsp;&nbsp;
        <div itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
            {if $breadcrumbs = shopShop::breadcrumbscategory($category)}
                {foreach $breadcrumbs as $breadcrumb}
        <div itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
                {/foreach}
                {foreach $breadcrumbs as $breadcrumb}
            <a href="{$breadcrumb.url}" itemprop="url">
                <span itemprop="title">{$breadcrumb.name|escape}</span></a>&nbsp;&nbsp;&nbsp;&gt;&nbsp;&nbsp;&nbsp;
        </div>
                {/foreach}
            {/if}
                <div itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
                        <a href="" itemprop="url"><span class="last_span" itemprop="title">{$category.name|escape}</span></a>
                </div>
        </div>
</div>

Неактивен

 

#3 2015-04-09 12:33

Kerbo
Пользователь

Re: breadcrumb реализация микроразметки

не совсем верно... смотрю еще

Неактивен

 

#4 2015-04-09 12:42

zveruka
Пользователь

Re: breadcrumb реализация микроразметки

нужно чтобы соблюдалась иерархия:
<div class="breadcrumb" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">Главная       
        <div itemprop="child">Категория_1
                 <div itemprop="child">Категория_2
                          <div itemprop="child">Товар</div>
                 </div>
         </div>
</div>
а в цикле выводится Две категории подряд

Неактивен

 

#5 2015-04-09 12:54

Kerbo
Пользователь

Re: breadcrumb реализация микроразметки

Вот проверил. Вроде все по иерархии

Код:

<div class="breadcrumb" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
    <a href="/" itemprop="url"><span itemprop="title">главная</span></a>&nbsp;&nbsp;&nbsp;&gt;&nbsp;&nbsp;&nbsp;
{if $breadcrumbs = shopShop::breadcrumbscategory($category)}
    {foreach $breadcrumbs as $breadcrumb name=breads}
    <div itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
        <a href="{$breadcrumb.url}" itemprop="url"><span itemprop="title">{$breadcrumb.name|escape}</span></a>&nbsp;&nbsp;&nbsp;&gt;&nbsp;&nbsp;&nbsp;
        {if $smarty.foreach.breads.last}
        <div itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
            <a href="" itemprop="url"><span class="last_span" itemprop="title">{$category.name|escape}</span></a>
        </div>
        {/if}
    {/foreach}
    {foreach $breadcrumbs as $breadcrumb}
     </div>
    {/foreach}
{else}
    <div itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
        <a href="" itemprop="url"><span class="last_span" itemprop="title">{$category.name|escape}</span></a>
    </div>
{/if}
</div>

Отредактировано Kerbo (2015-04-09 12:54)

Неактивен

 

#6 2015-04-09 13:25

zveruka
Пользователь

Re: breadcrumb реализация микроразметки

Спасибо Вам большое! с моими слабыми знаниями php... и с Вашей помощью нашел решение еще прощеsmile

Код:

<div class="breadcrumb" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
        <a href="/" itemprop="url">
            <span itemprop="title">главная</span></a>&nbsp;&nbsp;&nbsp;&gt;&nbsp;&nbsp;&nbsp;
            {if $breadcrumbs = shopShop::breadcrumbscategory($category)}
            {foreach $breadcrumbs as $breadcrumb}
        <div itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
            <a href="{$breadcrumb.url}" itemprop="url">
                <span itemprop="title">{$breadcrumb.name|escape}</span></a>&nbsp;&nbsp;&nbsp;&gt;&nbsp;&nbsp;&nbsp;
            {/foreach}
        {/if}
                <div itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
                        <a href="" itemprop="url"><span class="last_span" itemprop="title">{$category.name|escape}</span></a>
                </div>
            {foreach $breadcrumbs as $breadcrumb}
        </div>
            {/foreach}
    </div>

дописал лишь вот эту конструкцию и занес div в цикл, теперь норм

Код:

{foreach $breadcrumbs as $breadcrumb}
        </div>
{/foreach}

Отредактировано zveruka (2015-04-09 14:08)

Неактивен

 

#7 2015-04-09 14:25

zveruka
Пользователь

Re: breadcrumb реализация микроразметки

хотя нет - мой код работает для хлебных крошек на странице товара, a для категории правильно как вы написали, иначе не работает когда остается только Категория_1
еще раз Спасибо

Отредактировано zveruka (2015-04-09 14:30)

Неактивен

 

#8 2015-04-09 14:59

Kerbo
Пользователь

Re: breadcrumb реализация микроразметки

Да не за что. Самому интересно покопаться когда хватает знаний.

Неактивен

 

#9 2015-04-10 20:08

realteam
Пользователь

Re: breadcrumb реализация микроразметки

Недавно все было ок, теперь яндекс пишет следующее:

ПРЕДУПРЕЖДЕНИЕ: значение "" в поле url не является корректным значением ссылки

ПРЕДУПРЕЖДЕНИЕ: префикс v задан с использованием атрибута xmlns. Используйте атрибут prefix для совместимости с RDFa 1.1

Что не так?

Неактивен

 

#10 2015-04-14 09:32

zveruka
Пользователь

Re: breadcrumb реализация микроразметки

просто судя по справке гугла, в последней итерации хлебных крошек тоже должна быть ссылка (хотя некоторые вставляют просто в span), если у вас так <a href="" itemprop="url"></a> - скорей всего ему не нравится пустое значение атрибута href, попробуйте вывести туда выражение для url последней ссылки

хотя при этом проверяю у себя, предупреждений и ошибок нет

Неактивен

 

Board footer

Powered by PunBB