0

我需要有关 Magento 面包屑的帮助。这是谷歌测试工具告诉我的:

面包屑 1 网址: http ://domain.com/ 标题:主页 面包屑 2 网址: http ://domain.com/category/ 标题:类别 面包屑 3 标题:缺少且必需 url:缺少且必需

这是面包屑.phtml

<?php if($crumbs && is_array($crumbs)): ?>
<div class="breadcrumbs" xmlns:v="http://rdf.data-vocabulary.org/#">
    <ul>
        <?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?>
            <li class="<?php echo $_crumbName ?>" typeof="v:Breadcrumb">
            <?php if($_crumbInfo['link']): ?>
                <a rel="v:url" property="v:title" href="<?php echo $_crumbInfo['link'] ?>" title="<?php echo $this->escapeHtml($_crumbInfo['title']) ?>"><?php echo $this->escapeHtml($_crumbInfo['label']) ?></a>
            <?php elseif($_crumbInfo['last']): ?>
                <strong><?php echo $this->escapeHtml($_crumbInfo['label']) ?></strong>
            <?php else: ?>
                <?php echo $this->escapeHtml($_crumbInfo['label']) ?>
            <?php endif; ?>
            <?php if(!$_crumbInfo['last']): ?>
                <span>/ </span>
            <?php endif; ?>
            </li>
        <?php endforeach; ?>
    </ul>
</div>
<?php endif; ?>

我该如何解决?

提前致谢!伊万

4

4 回答 4

1

我已使用此代码通过 google 控制台警告解决面包屑问题,请单击此处进行测试:https ://search.google.com/structured-data/testing-tool#

<?php
$separator = $this->getBreadcrumbsSeparator();
 ?>

    <?php if($crumbs && is_array($crumbs)): ?>
    <div class="breadcrumbs"  >
    <ul itemscope itemtype="http://schema.org/BreadcrumbList">
      <?php $i = 0; ?>
        <?php foreach($crumbs as $_crumbName=>$_crumb): ?>
 <li class="<?php echo $_crumbName ?>" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
        <?php if(!empty($_crumb['link']) && (!$_crumb['last'])): ?>
            <a  itemprop="item" href="<?php echo $_crumb['link'] ?>" title="<?php echo $this->htmlEscape($_crumb['label']) ?>" rel="v:url" property="v:title">
                <?php echo $this->htmlEscape($_crumb['label']) ?>
                  <meta itemprop="position" content="<?php echo $i; ?>">
                  <meta itemprop="name" content="<?php echo $this->escapeHtml($_crumb['label']) ?>">
            </a>
        <?php elseif($_crumb['last']): ?>
            <strong>
            <?php echo $this->htmlEscape($_crumb['label']) ?>
              <meta itemprop="position" content="<?php echo $i; ?>">
              <meta itemprop="name" content="<?php echo $this->escapeHtml($_crumb['label']) ?>">

            </strong>
        <?php else: ?>
            <?php echo $this->htmlEscape($_crumb['label']) ?>
             <meta itemprop="position" content="<?php echo $i; ?>">
             <meta itemprop="name" content="<?php echo $this->escapeHtml($_crumb['label']) ?>">
        <?php endif; ?>
        <?php if(!$_crumb['last']): ?>
            <span><?php echo $separator; ?></span>
             <meta itemprop="position" content="<?php echo $i; ?>">
             <meta itemprop="name" content="<?php echo $this->escapeHtml($_crumb['label']) ?>">
        <?php endif; ?>
        </li>
          <?php $i++; ?>
        <?php endforeach; ?>
    </ul>
</div>

现在,将开发站点上产品页面的代码复制到 Google Web master Tools Google Structured Data 中。如果 Google 可以阅读您的页面,那么一切都会好起来的。您可以在那里检查,如果需要,然后稍微修改代码。要检查您的代码,请单击此处: https ://search.google.com/structured-data/testing-tool

于 2020-02-01T05:57:09.837 回答
0

用下面的代码替换你的代码..

<?php if($crumbs && is_array($crumbs)): ?>
<div class="breadcrumbs">
<ul xmlns:v="http://rdf.data-vocabulary.org/#">
    <?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?>
        <li class="<?php echo $_crumbName ?>" typeof="v:Breadcrumb">
        <?php if($_crumbInfo['link']): ?>
            <a href="<?php echo $_crumbInfo['link'] ?>" title="<?php echo $this->escapeHtml($_crumbInfo['title']) ?>" rel="v:url" property="v:title"><?php echo $this->escapeHtml($_crumbInfo['label']) ?></a>
        <?php elseif($_crumbInfo['last']): ?>
            <strong rel="v:url" property="v:title"><?php echo $this->escapeHtml($_crumbInfo['label']) ?></strong>
        <?php else: ?>
            <?php echo $this->escapeHtml($_crumbInfo['label']) ?>
        <?php endif; ?>
        <?php if(!$_crumbInfo['last']): ?>
            <span>/ </span>
        <?php endif; ?>
        </li>
    <?php endforeach; ?>
</ul>
</div>
<?php endif; ?>

现在,将代码从您的开发站点上的产品页面复制到 Google Web master Tools Google Structured Data中。如果 Google 可以阅读您的页面,那么一切都会好起来的。如果没有,那么整页缓存就会消失。您需要解决 Magento 不缓存面包屑的问题。该站点可能会帮助您解决缓存问题 ->修复 Magento 缓存面包屑问题。我希望这能解决你的问题。另一个可以提供帮助的网站 -->> http://inhoo.net/magento/google-rich-snippets-in-magento/

于 2015-03-04T05:47:34.597 回答
0

您没有面包屑最后一项的链接。谷歌需要它来显示路径而不是 URL

<?php elseif($_crumbInfo['last']): ?>

添加<a href="<?php echo $path ?>" itemprop="url">在前面<strong>,当然最后不要忘记关闭标签</strong></a>

于 2015-07-07T21:19:48.420 回答
0

我尝试了一切,但没有任何效果,所以我最终选择了自己的解决方案。

app\design\frontend\base\default\template\page\html\breadcrumbs.phtml我在自己的主题中创建了一个覆盖并替换了它:

<?php if($crumbs && is_array($crumbs)): ?>
<div class="breadcrumbs">
    <ul>
        <?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?>
            <li class="<?php echo $_crumbName ?>">
                <?php if($_crumbInfo['link']): ?>
                    <a href="<?php echo $_crumbInfo['link'] ?>" title="<?php echo $this->escapeHtml($_crumbInfo['title']) ?>"><?php echo $this->escapeHtml($_crumbInfo['label']) ?></a>
                <?php elseif($_crumbInfo['last']): ?>
                    <strong><?php echo $this->escapeHtml($_crumbInfo['label']) ?></strong>
                <?php else: ?>
                    <?php echo $this->escapeHtml($_crumbInfo['label']) ?>
                <?php endif; ?>
                <?php if(!$_crumbInfo['last']): ?>
                    <span>/ </span>
                <?php endif; ?>
            </li>
        <?php endforeach; ?>
    </ul>
</div>

有了这个:

<?php if($crumbs && is_array($crumbs)): ?>
<div class="breadcrumbs">
    <ul itemscope itemtype="http://schema.org/BreadcrumbList">
        <?php $i = 0; ?>
        <?php foreach($crumbs as $_crumbName=>$_crumbInfo): ?>
            <li class="<?php echo $_crumbName ?>" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                <?php if($_crumbInfo['link']): ?>
                    <a itemprop="item" href="<?php echo $_crumbInfo['link'] ?>" title="<?php echo $this->escapeHtml($_crumbInfo['title']) ?>">
                        <?php echo $this->escapeHtml($_crumbInfo['label']) ?>
                        <meta itemprop="position" content="<?php echo $i; ?>">
                        <meta itemprop="name" content="<?php echo $this->escapeHtml($_crumbInfo['label']) ?>">
                    </a>
                <?php elseif($_crumbInfo['last']): ?>
                    <strong itemprop="item">
                        <?php echo $this->escapeHtml($_crumbInfo['label']) ?>
                        <meta itemprop="position" content="<?php echo $i; ?>">
                        <meta itemprop="name" content="<?php echo $this->escapeHtml($_crumbInfo['label']) ?>">
                    </strong>
                <?php else: ?>
                    <span itemprop="item">
                        <?php echo $this->escapeHtml($_crumbInfo['label']) ?>
                        <meta itemprop="position" content="<?php echo $i; ?>">
                        <meta itemprop="name" content="<?php echo $this->escapeHtml($_crumbInfo['label']) ?>">
                    </span>
                <?php endif; ?>
                <?php if(!$_crumbInfo['last']): ?>
                    <span>/ </span>
                <?php endif; ?>
            </li>
            <?php $i++; ?>
        <?php endforeach; ?>
    </ul>
</div>
于 2018-05-07T15:53:23.433 回答