我需要Magento面包屑的帮助。这是谷歌测试工具告诉我的:
面包屑1 网址:http://domain.com/ 标题:主页 面包屑2 网址:http://domain.com/category/ 标题:类别 面包屑3 标题:缺失和必需 url:缺少并需要
这是breadcrumbs.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; ?>
我该如何解决?
提前致谢! 伊万
答案 0 :(得分: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工具Google结构化数据。如果Google可以阅读您的页面,那么一切都会很好。您可以在此处进行检查,如果需要的话,可以稍作修改。要修改您的代码,请点击此处:https://search.google.com/structured-data/testing-tool
答案 1 :(得分: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主工具Google Structured Data。如果Google可以阅读您的网页,那么一切都会好起来的。如果没有,则全页缓存消失。你需要解决Magento没有缓存面包屑的问题。此网站可能会帮助您解决缓存问题 - &gt; Fix Magento Cache Breadcrumb issue。我希望这能解决你的问题。另一个帮助的网站 - &gt;&gt; http://inchoo.net/magento/google-rich-snippets-in-magento/
答案 2 :(得分:0)
您没有针对痕迹导航的最后一项的链接。 Google需要它来显示路径而不是URL
<?php elseif($_crumbInfo['last']): ?>
之后
在<a href="<?php echo $path ?>" itemprop="url">
前添加<strong>
,不要忘记在课程结束时关闭代码</strong></a>
答案 3 :(得分: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>