我使用的是 megento 1.7.0.2,有些产品有 3 或 4 个不同的 url:
example.com/category1/product1.html
example.com/category1/category2/product1.html
example.com/prodcut1.html
...
在 Prodcut1 的 HTML 代码中,magento 添加了这个标签:
<link rel="canonical" href="http://example.com/product1.html">
如何选择另一个网址?例如:
<link rel="canonical" href="http://example.com/category1/category2/product1.html">
最佳答案
不幸的是,它无法通过默认的 Magento 功能完成。
首先,您需要决定在定义规范 URL 时要考虑哪些标准。
我们的 Magento SEO extension会让你选择:
这些 URL 也可以添加到 HTML 和 XML 站点地图中。
最重要的是,您可以为任何所选产品单独选择任何 URL 或输入自定义规范。
您也可以自己尝试,使用重写的集合。对于社区版,它看起来像这样:
$collection = Mage::getResourceModel('core/url_rewrite_collection');
$collection->getSelect()->where('product_id = ? AND category_id is not null AND is_system = 1', $productId, Zend_Db::INT_TYPE); <- с наличием категории
$collection->addStoreFilter(Mage::app()->getStore()->getId());
$collection->getSelect()->order(new Zend_Db_Expr('LENGTH(request_path) ' . 'DESC')); <- sorting that depends on the principle of canonical settings.
$rewriteModel = $collection->getFirstItem();
var_dump($rewriteModel); <-damp of the acquired object
然后您需要连接基本商店 URL + “request_path” 属性表单对象 + URL 后缀(如果需要)。
关于Magento : how to set canonical URL for product?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33784975/
Magento附带了六个以上的JavaScript库,这些库对已经很繁琐的加载时间没有帮助。有没有人能够成功地将head.js或labjs之类的脚本加载器与Magento一起使用,以便他们可以异步加载?我一直在努力,但无法让它发挥作用。似乎页面上的内联脚本在加载库之前就已触发。我知道head.js有一个类似于head.ready的函数来告诉脚本执行,但是内联脚本太多了,将它添加到整个站点的每个事件中是不切实际的。 最佳答案 关于内联脚本,有一个程序化的解决方案。您可以编写一个绑定(bind)到core_block_abstract_
如果屏幕宽度小于768像素,我需要在水平位置移动产品库导航缩略图。为此,我需要连接一个在图库完全加载后触发的回调。当通过x-magento-init方法初始化图库小部件时如何执行此操作:{"[data-gallery-role=gallery-placeholder]":{"mage/gallery/gallery":{...}}}我尝试添加:require(['jquery','mage/gallery/gallery'],function($,gallery){console.log($('[data-gallery-role=gallery-placeholder]').data
我以为Magento自带了这个开箱即用的功能,但它似乎根本不起作用。我不确定我是否没有正确设置它,但现在我正在使用cat并更改page.xml布局文件以使用结合了javascript和css文件。我可以让Magento执行此操作吗?或者是否有添加此功能的扩展程序? 最佳答案 转到系统>配置>开发人员并更改Javascript和CSS设置框中的设置。确保您在网站/商店页面的左上角设置了正确的配置范围。确保在更改设置后刷新缓存。附言FoomanSpeedster扩展程序也将执行此任务。 关于
我阅读了如何将jquery正确包含到magento的指南包含库不包含冲突脚本转到$的jquery调用并将其更改为Jquery只需一个扩展程序即可轻松实现。然而,在我的例子中,我安装了3个不同的扩展,它们都想包含Jquery。当然,我不想复制这个库并调用它3次。起初,我想我可以在的第一行手动包含jquery库。标记并删除3个扩展中的所有jquery包含。但它没有成功,通常只有其中一个有效。如果我允许所有3个扩展都包含jquery,那么它们都可以工作。我怎样才能使商店中的所有jquery扩展正常工作,同时只包含一次libray?有人建议我应该在的顶部包含所有依赖于jquery的脚本,是对的
Thereisanoutstandingbugin1.6+versionsofMagentowherethe%savingsfortierpricesdefaultsto100%whenanoptionisselected.其他贡献者建议在第747行左右更改product.jsfor(vari=0;i成为for(vari=0;i>this.tierPrices.length;i++){这解决了节省百分比的问题,但该代码块永远不会执行。我绝不是Javascript专家,但这个block似乎在选择选项时更新等级价格和节省百分比。我想找到问题的根源,而不是“将其注释掉”。从我在Firebug
我需要对以下Magento文件进行一些更改:public_html\js\varien\configurable.jspublic_html\js\varien\product,js问题是;我应该编辑这些文件吗?它们是核心文件吗(如果我升级了Magento,它们将被替换)?如果我不应该编辑它们,如果我想更改这些文件的内容,我应该怎么做? 最佳答案 假设你想覆盖product.js的“重新加载”功能按照步骤->在js文件夹下创建一个新文件夹,在我们的例子中是在/js/jsoverride/->现在创建一个新的js文件,在我们的例子中,
我正在使用magentoC.E1.7。最近我从谷歌分析迁移到通用分析。迁移后,除了交易数据外,其他细节都很好。我在head.phtml中添加了以下脚本以进行通用分析。(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*newDate();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNod
我想尝试在Magento1.9.1的PrototypeJavaScriptscript标签中插入“async”属性:我会得到这样的结果:我必须在哪里插入“async”?带有此行代码的文件是什么?谢谢 最佳答案 看文件app/design/frontend///layout/page.xml(或将app/design/frontend/base/default/layout/page.xml复制到您的主题中)。在此文件中,搜索以下行:prototype/prototype.js并更改addJs电话:prototype/prototyp
我试图通过head.phtml文件中的javascript获取MagentoBaseUrl,然后在jquery.hello-lightbox.min文件中使用它,我需要baseUrl来获取一些图像。这是我在head.phtml文件中的内容:getBaseUrl();?>varbaseUrl=functiongetBaseUrl(baseUrl)然后在/js/jquery.hello-lightbox.min我有:(function($){functiongetBaseUrl(baseurl){vardomain=baseurl}varurrl='http://'+domain+'/sk
这是Magento默认加载的所有脚本的列表:../js/prototype/prototype.js//prototypelibrary../js/prototype/validation.js//don'tknowwhatthisdoes../js/scriptaculous/builder.js//don'tknowwhatthisdoes../js/scriptaculous/effects.js//basescriptaculouseffectslibrary?../js/scriptaculous/dragdrop.js//componentofscriptaculousef