月度归档:2014年01月

magento 网址SEO优化

优化前的网址:http://www.china-hf.net/index.php/apparel/shoes.html

优化后的网址:http://www.china-hf.net/apparel/shoes

magento产品详细页

优化前的网址:http://www.china-hf.net/index.php/cn-clogs-beach-garden-clog.html

优化后的网址:http://www.china-hf.net/cn-clogs-beach-garden-clog

设置位置如下图:

注意红色部分留空,就是去掉了网址后面的 .html

蓝色部分设置成 NO,这个蓝色部分是设置“是否将产品的分类加到产品的url中”,选NO就是不加

注意绿色部分要设置成 YES

最后一步是进入magento的 cache management 刷新 Catalog Rewrites的缓存,刷新下magneto缓存。或者建议你将magento根目录的var文件夹的cache文件夹删掉,这样最方便。

把Magento 404页面跳转到首页

Magento 默认有个404 页面,你可以在magento后台CMS => Page 里面找到“404 Not Found 1” 页面打开直接编辑404页面内容。假如你想把404页面重定向到网站首页,也就是在地址栏域名后面输入错误的网址访问得到的404页面却是首页界面,这个功能只需在后台设置即可实现。

操作如下:

1.打开你的magento后台 => 系统(System)=> 配置(Configuration) => 网站(Web) => 默认页 (Default Pages)

2.把CMS No Route Page 的选项改成“Home page”,保存刷新缓存即可。

Magento外贸产品网站内部SEO优化配置说明参与

1.1. 普通设置

Magento是搜索引擎最友好的商用平台之一,但有几点需要关注以优化你的Magento SEO. 第一步是使用最新的版本激活Server URL rewrites. 你可以找到这个选项在系统按钮下: System => Configuration => Web => Search Engines Optimization. 激活后在这个页面上,另一个不错的选择是设置“Url Options ”下的 “Add store Code to Urls” ,在大多数情况下,把这个开关设为“No”更好。

1.1.1. WWW vs non-WWW
在“Unsecure” 和“Secure” 的下拉菜单里你可以找到Base URL, 在那里你可以设置你更喜欢的域名。你可以选择WWW的URL或者没有WWW的URL。改变这些设置你不会建立一个重定向从www到non-www或者从 non-www到www,而只是你设置的你喜欢的那一个。所以通过htaccess with mod_rewrite建立一个301重定向是一个好主意。除此之外,解决了 WWW vs non-WWW 的问题,这个重定向可以预防Magento被加入SID问题到你的URLs,像 SID=b9c95150f7f70d6e77ad070259afa15d. 确保Base URL 和重定向是一样的。编辑htaccess 文件时,你可以加入下面的代码到根目录下的重定向index.php 中。

大约 119 行:
RewriteBase / RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://www.mydomain.com/ [R=301,L]
或者,你安装Magento的时候不是在根目录下而是在某个子目录下http://www.mydomain.com/magento/:
RewriteBase /magento/ RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /magento/index.php HTTP/
RewriteRule ^index.php$ http://www.mydomain.com/magento/ [R=301,L]

1.2. 页眉设置
安装Magento时默认的标题是“Magento Commerce”。为了你的Magento商店得到它应得的流量,以下你必须了然于胸:

搜索引擎着重于开头的词,所以如果你的关键字靠近页面标题的开头那你有更大的可能性让排名更好。人们扫视结果页面,一般看开头的几个词。如果你的关键字位于页面的的开始,那你被点击的可能性就大很多。

首先你应该去掉默认的标题 “Magento Commerce”. 后台点击 Configuration => Design => HTML Head. 为你的网站选一个描述性好的标题,这个标题也会在几个没有内容的页面中使用,比如“Contact Us” 和“Popular Search Terms”.

把页面标题加到你的店名中,包括目录和商品,把你的店名放在“标题后缀”中。保持前缀空白是个不错的选择,同时保持“Default Description” 和“Default Keywords” 空白。对于非产品展示页面,为防止整站索引,设置“Default Robots” 为“NOINDEX, NOFOLLOW” 会有所帮助,但对于别的页面来说要确保设置为“INDEX, FOLLOW”.

现在我们优化你的网店页面的<head> ,好的方法是加上 new canonical tag (新的规范标签)。你可以安装 Canonical URL’s for Magento Module 以便把它们加到你的head种来改进你的Magento SEO。

因某些原因Magento把未设置的meta机器人转为一个meta标签,方式如下:
<meta name=”robots” content=”*” />
这种方式会造成搜索引擎一些奇怪的行为,所以我们要把它移除。要从代码中移除这些空白的meta你可以安装Yoast MetaRobots Module.

1.3. CMS 页面
第一眼看上去Magento似乎缺少华丽的CMS功能,但对于大多数使用者来说这已经足够了。简单的CMS的好处之一是你能够控制页面的每一个方面。一旦你赋予每一个CMS页面一些不错的内容,选一个SEF URL鉴别者和页面标题,(同时记住1.2小节中的要点),到Meta数据标签处为每个你想要给它排名的CMS页面写上描述。

你可以保持”Keywords”栏空白。描述有一个很重要的作用:引诱人们去点击,所以确保它描述的确实是他们所要点击页面的内容,那样可以引起他们的注意。因此,唯一的好的描述就是自己手写的,如果你考虑用自动描述软件来写描述,那还不如什么也不做,让搜索引擎负责这部分。

如果你不使用meta描述,搜索引擎会在你的文件里找到关键字,并自动选择一条,那样在结果页面里会有一到两个醒目的词。

1.4. 商品目录优化
Magento 给你增加目录名的权利,让你的目录指向产品的URL。因为Magento对建立相同的内容这个功能的支持不够,很好的方式就是禁用它。设置它,点击 System => Configuration => Catalog => Search Engine Optimization and set “Use categories path for product URL’s to “no”.

现在是时候设置每一个目录的细节了。点击Catalog => Manage Categories. 最重要的区域是:

Meta 描述: 在这里放上吸引人的描述;记住人们会在搜索引擎的结果列表页中看到这个描述。
页面标题: 保持页面标题空白,使用目录名包括父目录。但你按照要求制作目录时,标题会像你所输入的一样,没有父目录。
URL 要点: 尝试保持短的但是关键字丰富的URL。移除没用的词象“the”,“and”,”for”等等。要注意的是你只能在“all store views”下设置, 对于多语种的商店你应该保持语言的独立。
对于每一个商店界面,你可以指定名字,描述,页面标题和Meta数据。对多语种商店来说这真的是一个很棒的功能。

1.5. 商品优化
商品页面的优化和目录优化有些相似。你可以设置Meta信息为 “Default Values” 并使用于每一个“Store View”. 注意对于“Meta Title”, 这个将写在完全的页面标题上,包括目录但不包括标题的前缀/后缀,而不仅仅是商品的名称。

Magento SEO中一个经常忽略的方面是你怎么处理你的图片。通过给图片写标签和考虑给你的图片起怎样的名字,你会从不同的图片搜索引擎得到不错的额外流量。

2.1. 优化了的空白模板
默认的Magento皮肤如“Default Theme”, “Blue Skin” 和“Modern Theme” 在标题方面的工作做得不好,从SEO的角度来看,有很多的地方可以改进。为使它对你变得简单,我们开发了一款空白的Magento SEO模板,基于Magento的核心技术,空白模板合并了所有的东西,你可以下载并一起讨论它 download and discuss it here.

2.2. 标题

默认的logo 是一个 <h1>, 应该只是出现在首页,在别的页面上它应该是一个<h3>. 最重要的事实让标题的内容置于 <h1> 标签之中,例如,在目录页它应是目录名在商品也应是商品名。

下一步是清除过量的标题。一个好主意是清除侧栏的标题,或者做一个和商店相关的文字(包括关键字)。没有什么理由加上”static” 和没有什么关键字的标题在<h4>中. 是的,例如,把所有的 <h4> 标签换成 <div> to <strong> 标签更好。现在是时候优化你的内容了,在目录页中把商品名放在 <h3> 里,把目录名放在 <h1>里。在商品页,你应该把商品名放在<h1>里.

2.3. 清除你的代码
保持你的模板清爽,把你的模板文件中的所有 javascript 和 CSS 移到外部的 javascripts 和css 文件中,因为它们对你的Magento SEO没有任何好处。这样做可以确保你的用户在首次读取文件的时候储存那些文件,搜索引擎不需要花费大量的时间来下载它们。

2.4. 速度辅助
一个很重要的情况是搜索引擎每一天要在你的商店爬过多少页面,你的商店的读取速度有多快。

你可以做两件事来增加你的Magento的速度:

激活缓存。后台点击 System => Cache Management and enable all caching features, like this.一个号的主机和服务器的设置也是很重要的。用 MySQL 和 PHP opcode 缓存你可以戏剧性的提高你的Mageto速度。另一件需要考虑的二十外部文件的数量。每一个你让人们下载的文件,他们的浏览器会建立另一个连接到网络服务器。所以非常好的主意就是减少外部文件的数量,合并几个文件为一个文件。默认的Magento已经合并了几乎所有的 javascript 文件到一个文件中。但stylesheets 文件没有合并:默认模板有6个不同的stylesheet 文件。你可以把这些文件合并成一个新文件,除了print.css文件,或者你可以使用这个 Fooman Speedster module. 除了合并文件外,这个模数能压缩和缓存你的 javascript 和 stylesheet 文件。(请注意Speedster的使用条件: mod_rewrite 必须可用,你的服务器需要支持.htaccess。如果你在Magento同时使用规范的URLs和 Fooman Speedster,你需要利用this download在Canonical module 上写。)

3. 高级的Magento SEO 和相同的内容
一旦你完成了所有基础的东西你会发现剩下的事情就是一件简单的事:相同的内容。实际上是大量的相同的内容。商品里有相同的内容,至少,在下面的URLs有完全相同的内容:
domain.com/product.html
domain.com/category1/product.html
domain.com/catalog/product/view/id/1/
domain.com/catalog/product/view/id/1/category/1/

此外,商品回顾页面有几乎一样的内容。另一个问题是目录,你有大量相同的内容在层级导航中和索引选择中。最坏的情况是一个商品在这个页面显示之外,至少还会在这个页面以外的4个页面中显示。

我们将要去掉这些相同的内容,并允许它们被蜘蛛爬但不被索引,固定目录的索引选择和层级导航。

3.1. 无内容页面的Noindex, follow
安装 Yoast robots meta module 并确保设置成防止索引所有的无内容页面,如下:
现在搜索引擎将通过所有的链接来到这些页面上但不会再索引中显示这些页面。

3.2. Nofollowing 非必需的链接
另一简单的步骤来提高你的Magento SEO 是停止链接到你的登录,付款,希望购买列表和所有其他没有内容的页面。对于RSS feeds,层级导航,增加商品到希望购买列表,增加商品到比较列表来说也是同样的设置。目前还没有插件来完成这些工作。你不得不进入你的模板文件中手工完成。

3.3. 规范的URLs
帮助搜索引擎理解你页面中的相同内容,你可以在每个页面使用你更喜欢的URL,使用新的canonical URL tag (规范的URL标签),你就应该安装这个Canonical URL’s for Magento 模数。

3.4. XML 地图
XML 地图是让搜索引擎知道你的内容在哪里的简单方法,它不会帮助你提高排名,但它可以帮助你更快得到索引。你可以手工建立一个XML地图,后台点击 Catalog => Google Sitemap => Add Sitemap, 选择一个文件名,路径和商店界面,然后点击“Save & Generate”。然后你可以简单的把下面的代码放到你的 robots.txt 文件中指引搜索引擎向你的 sitemap.xml 文件:Sitemap: /sitemap.xml完成了这些修改,你重新获得XML地图。要确认它们是最新的,最好的办法就是建立一个cron工作,更广泛的描述的过程看这里。

Magento-如何添加首页Home在菜单导航上

添加首页Home在菜单导航上,并添加ACTIVE!

找到top.phtml这个文件,位置在:app/design/frontend/default/yourtheme/template/catalog/navigation/找到后更改成:

<div>

<div>

<h4><?php echo $this->__(‘Category Navigation:’) ?></h4>

<ul>

<!– ALTERNATIVE HOME BUTTON HACK 注意看这里. –>

<li><a href=”<?php echo $this->getUrl(”)?>”><?php echo $this->__(‘Home’) ?></a></li>

<!– ALTERNATIVE HOME BUTTON HACK /注意看这里 –>

<?php foreach ($this->getStoreCategories() as $_category):?>

<?php echo $this->drawItem($_category) ?>

<?php endforeach ?>

</ul>

</div>

<?php echo $this->getChildHtml(‘topLeftLinks’) ?>

</div>

CMS主页使用CMS “Home”类的body标记。

body.cms-home #nav li.home a { color:#d96708; }

已经完成,不过有些them有ACTIVE,运作不正常需要以后修改

添加”主页”链接到菜单栏

找到top.phtml,在:app/design/frontend/default/default/template/catalog/navigation/,然后做出下面的改动:

<div>

<div>

<h4><?php echo $this->__(‘Category Navigation:’) ?></h4>

<ul>

<!– HOME BUTTON HACK 看这里 –>

<?php $_anyActive = false; foreach ($this->getStoreCategories() as $_category) { $_anyActive = $_anyActive || $this->isCategoryActive($_category); } ?>

<li><a href=”<?php echo $this->getUrl(”)?>”><?php echo $this->__(‘Home’) ?></a></li>

<!– HOME BUTTON HACK /看这里 –>

<?php foreach ($this->getStoreCategories(10) as $_category):?>

<?php echo $this->drawItem($_category) ?>

<?php endforeach ?>

</ul>

</div>

<?php echo $this->getChildHtml(‘topLeftLinks’) ?>

</div>
添加主页链接到顶部链接

这将允许您添加一个主页链接顶部链接(我的帐户|我的心愿|等)在”我的帐户”前面。

找到该文件要求links.phtml

app/design/frontend/default/default/template/page/template / 并更改一下内容

<?php $_links = $this->getLinks(); ?>

<?php if(count($_links)>0): ?>

<div>

<ul<?php if($this->getName()): ?>):?><?php endif;?>>

<!– HOME BUTTON HACK –>

<li><a href=”<?php echo $this->getUrl(”)?>”><?php echo $this->__(‘Home’) ?></a></li>

<!– HOME BUTTON HACK –>

<?php foreach($_links as $_link): ?>

<li <?php if($_link->getIsLast()): ?><?php endif; ?><?php echo $_link->getLiParams() ?>><?php echo $_link->getBeforeText() ?><a href=”<?php echo $_link->getUrl() ?>” title=”<?php echo $_link->getTitle() ?>” <?php echo $_link->getAParams() ?>><?php echo $_link->getLabel() ?></a><?php echo $_link->getAfterText() ?></li>

<?php endforeach; ?>

</ul>

</div>

<?php endif; ?>

清除Magento缓存有哪几种方法

Magento后台叫“刷新”缓存,实际在程序执行上是清除缓存(Cleaning Cache)。

如果你想在后台刷新缓存,很简单,去后台“System > Cache Management”,点击清除全部缓存,或者在列表中选择一项你想清除的缓存。在这里我主要讲的不是后台清除,而是命令行和程序的直接清除。

如果你想通过命令行清除缓存,你需要使用ssh链接你的服务器,打如下命令:
cd /where/your/mangento/root/var/cache
rm -rf *

如果你需要在你的程序中清除缓存,一般是在计划任务中或者其他任何地方需要用这个,请将下列代码加到你的程序中,很简单。Mage::app()->cleanCache();

也可以这样写:
Mage::app()->getCache()->clean();

如果你的计划任务脚本不在Magento程序内部,是个外部的执行脚本,那么你可以这样写:$magento_bootstrap= ’/[YOUR MAGENTO PATH]/app/Mage.php’;
require_once $magento_bootstrap;
umask(0);
Mage::run();
Mage::app()->cleanCache();

如何关闭掉后台的magento通知信息

magento中所有模块的开关都是在app/etc/modules中的文件进行配置的,要把一个模块禁用.

步骤如下:
1. 确定你要关闭的模块,我们这边要关闭的是AdminNotification

2. 到app/etc/modules目录下,找到包含这个模板定义的xml文件

3. 删掉它的相关定义,或将<active>true</active>值改成false;

手动删除magento中的订单

要删除订单只能通过手工在数据中执行sql语句来实现。在执行此sql脚本前,请务必备份你的数据库。下面的代码会删掉所有的代码,并且将相关的计数清零。

SET FOREIGN_KEY_CHECKS=0;

TRUNCATE `sales_order`;
TRUNCATE `sales_order_datetime`;
TRUNCATE `sales_order_decimal`;
TRUNCATE `sales_order_entity`;
TRUNCATE `sales_order_entity_datetime`;
TRUNCATE `sales_order_entity_decimal`;
TRUNCATE `sales_order_entity_int`;
TRUNCATE `sales_order_entity_text`;
TRUNCATE `sales_order_entity_varchar`;
TRUNCATE `sales_order_int`;
TRUNCATE `sales_order_text`;
TRUNCATE `sales_order_varchar`;
TRUNCATE `sales_flat_quote`;
TRUNCATE `sales_flat_quote_address`;
TRUNCATE `sales_flat_quote_address_item`;
TRUNCATE `sales_flat_quote_item`;
TRUNCATE `sales_flat_quote_item_option`;
TRUNCATE `sales_flat_order_item`;
TRUNCATE `sendfriend_log`;
TRUNCATE `tag`;
TRUNCATE `tag_relation`;
TRUNCATE `tag_summary`;
TRUNCATE `wishlist`;
TRUNCATE `log_quote`;
TRUNCATE `report_event`;

ALTER TABLE `sales_order` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_datetime` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_decimal` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_entity` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_entity_datetime` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_entity_decimal` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_entity_int` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_entity_text` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_entity_varchar` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_int` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_text` AUTO_INCREMENT=1;
ALTER TABLE `sales_order_varchar` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_address_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_quote_item_option` AUTO_INCREMENT=1;
ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=1;
ALTER TABLE `sendfriend_log` AUTO_INCREMENT=1;
ALTER TABLE `tag` AUTO_INCREMENT=1;
ALTER TABLE `tag_relation` AUTO_INCREMENT=1;
ALTER TABLE `tag_summary` AUTO_INCREMENT=1;
ALTER TABLE `wishlist` AUTO_INCREMENT=1;
ALTER TABLE `log_quote` AUTO_INCREMENT=1;
ALTER TABLE `report_event` AUTO_INCREMENT=1;

— reset customers
TRUNCATE `customer_address_entity`;
TRUNCATE `customer_address_entity_datetime`;
TRUNCATE `customer_address_entity_decimal`;
TRUNCATE `customer_address_entity_int`;
TRUNCATE `customer_address_entity_text`;
TRUNCATE `customer_address_entity_varchar`;
TRUNCATE `customer_entity`;
TRUNCATE `customer_entity_datetime`;
TRUNCATE `customer_entity_decimal`;
TRUNCATE `customer_entity_int`;
TRUNCATE `customer_entity_text`;
TRUNCATE `customer_entity_varchar`;
TRUNCATE `log_customer`;
TRUNCATE `log_visitor`;
TRUNCATE `log_visitor_info`;

ALTER TABLE `customer_address_entity` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_datetime` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_decimal` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_int` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_text` AUTO_INCREMENT=1;
ALTER TABLE `customer_address_entity_varchar` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_datetime` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_decimal` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_int` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_text` AUTO_INCREMENT=1;
ALTER TABLE `customer_entity_varchar` AUTO_INCREMENT=1;
ALTER TABLE `log_customer` AUTO_INCREMENT=1;
ALTER TABLE `log_visitor` AUTO_INCREMENT=1;
ALTER TABLE `log_visitor_info` AUTO_INCREMENT=1;

— Reset all ID counters
TRUNCATE `eav_entity_store`;
ALTER TABLE `eav_entity_store` AUTO_INCREMENT=1;

SET FOREIGN_KEY_CHECKS=1;

WordPress的伪静态设置方法

WordPress伪静态设置方法分Windows主机与和Linux主机,下面分开来介绍。

Linux主机WordPress伪静态设置方法

登录你的WordPress,点击左侧菜单设置选项下固定链接,如下图所示:

WordPress已经给出了几种URL伪静态形式,但都不很理想,我们希望的URL形式为:

域名/分类别名/文章ID.html

那么,如上图所示,选择自定义结构选项,填写:

/%category%/%post_id%.html

如果你对这种形式不满意,可以自定义任意形式,只要合理搭配参数即可,可以使用的参数如下:

%year%:文章发表的年份,四位数字,如2012

%monthnum%:文章发表的月份,如08

%day%:文章发表的日期,如28

%hour%:文章发表的时间(小时),如15

%minute%:文章发表的时间(分钟),如18

%second%:文章发表的时间(秒),如28

%postname%:文章别名,在发表文章时可以设置。

%post_id%:文章的ID,如68

%category%:分类别名,在添加分类时可以设置。

%tag%:标签的别名,在添加标签时可以设置。

设置好后,有的Linux主机允许程序自动创建.htaccess文件,但有的Linux主机不支持,此时,就需要我们手工上传.htaccess文件。将以下代码复制到记事本,保存为.htaccess。

# BEGIN WordPress

RewriteEngine On

RewriteBase /

RewriteRule ^index.php$ – [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

# END WordPress

可能你会发现,电脑不允许保存文件时文件名为空,那么随便起一个名称,用FTP工具上传到你的网站根目录后重命名,将名称去掉即可。

此时,细心的你可能会发现分类页的URL里有一个category,你可以使用WP No Category Base插件来解决。

Windows主机WordPress伪静态设置方法

复制以下代码到记事本:

[ISAPI_Rewrite]

# 3600 = 1 hour

CacheClockRate 3600

RepeatLimit 32

# Protect httpd.ini and httpd.parse.errors files

# from accessing through HTTP

# Rules to ensure that normal content gets through

RewriteRule /sitemap.xml /sitemap.xml [L]

RewriteRule /favicon.ico /favicon.ico [L]

# For file-based wordpress content (i.e. theme), admin, etc.

RewriteRule /wp-(.*) /wp-$1 [L]

# For normal wordpress content, via index.php

RewriteRule ^/$ /index.php [L]

RewriteRule /(.*) /index.php/$1 [L]

保存为httpd.ini,将这个文件上传到你的WordPress安装目录,然后设置固定链接,方法同Linux主机WordPress伪静态设置方法中的固定链接设置方法。

在Windows主机下设置WordPress伪静态有时会遇到这样那样的问题,所以,使用WordPress搭建网站最好选用Linux主机。

magento按review数量排序

如果你的Magento网站提供了评论和评分功能,在产品列表页提供按评分排序会让客户赏识。下面会帮你很快的把评分添加到分类页工具栏商务下拉框里。

把文件app/code/core/Mage/Catalog/Block/Product/List.php复制到app/code/local/Mage/Catalog/Block/Product/List.php并打开编辑。

在新的List.php文件里找到下面这一行(大概在86行):

$this->_productCollection = $layer->getProductCollection();

在这下面添加一行:

$this->_productCollection->joinField(‘rating_summary’, ‘review_entity_summary’, ‘rating_summary’, ‘entity_pk_value=entity_id’, array(‘entity_type’=>1, ‘store_id’=> Mage::app()->getStore()->getId()), ‘left’);

现在我们需要添加一个选项让客户可以选择按评分来排序。

把文件app/code/core/Mage/Catalog/Model/Config.php复制到app/code/local/Mage/Catalog/Model/Config.php并编辑。

在新的Config.php文件里找到下面这一行(大概在298行):

$options = array(
‘position’ => Mage::helper(‘catalog’)->__(‘Position’)
);

替换成

$options = array(
‘position’ => Mage::helper(‘catalog’)->__(‘Position’),
‘rating_summary’ => Mage::helper(‘catalog’)->__(‘Rating’)
);