Magento 更改产品页面标题以包含属性

2021-12-19 00:00:00 php magento

我想将 2 个自定义属性添加到产品页面上的 </code> 标签中.它们是品牌"和字幕".<em class="showen"></p> <p class="en">I have 2 custom attributes I'd like to add to the <code><title></code> tags on product pages. They are 'brand' and 'subtitle'.</p> <p class="cn">我的页面标题最终会是这样的:<em class="showen"></p> <p class="en">My page title would end up something like this:</p> <p class="cn">$brand." ".$productname." ".$subtitle;<em class="showen"></p> <p class="en">$brand." ".$productname." ".$subtitle;</p> <p class="cn">我怎样才能做到这一点?<em class="showen"></p> <p class="en">How can I achieve this?</p> <p class="cn">非常感谢您的帮助.</p> <h3 class="best_ans mt-1">推荐答案</h3> <p class="cn">根据您的问题,我假设您指的是更改产品的元标题.<em class="showen"></p> <p class="en">From your question, I assume you are referring to changing the meta title for products.</p> <p class="cn">有 3 个选项可供您选择:<em class="showen"></p> <p class="en">There are 3 options open to you:</p> <ol class="cn"><li>浏览每个产品并手动更新(或使用电子表格并单独导入)每个产品元标题.这些值是编辑产品时可在管理区域中使用.</li><li>重写 Mage_Catalog_Block_Product_View 并覆盖_prepareLayout() 方法,即生成此标签的位置.</li><li>使用观察者并挂钩到 catalog_controller_product_view 事件.</li></ol> <p class="cn">您的决定实际上是在选项 2 和选项 2 之间3(这两者都需要你创建一个自定义模块来实现).<em class="showen"></p> <p class="en">Your decision is really between options 2 & 3 (both of which will require you to create a custom module to achieve).</p> <p class="cn">在扩展 Magento 核心功能时,我总是尽量不引人注目 - 所以我会在这里选择选项 3.请参阅以下代码以获取完整示例:<em class="showen"></p> <p class="en">I always try to be as unobtrusive as possible when extending Magento core functionality - so I would opt for option 3 here. Please see below code for a complete example:</p> <p class="cn">app/etc/modules/Yourcompany_Yourmodule.xml<em class="showen"></p> <p class="en">app/etc/modules/Yourcompany_Yourmodule.xml</p> <pre><code><code><?xml version="1.0"?> <config> <modules> <Yourcompany_Yourmodule> <active>true</active> <codePool>local</codePool> </Yourcompany_Yourmodule> </modules> </config> </code></code></pre> <p class="cn">app/code/local/Yourcompany/Yourmodule/etc/config.xml<em class="showen"></p> <p class="en">app/code/local/Yourcompany/Yourmodule/etc/config.xml</p> <pre><code><code><?xml version="1.0"?> <config> <modules> <Yourcompany_Yourmodule> <version>1.0.0</version> </Yourcompany_Yourmodule> </modules> <global> <models> <yourmodule> <class>Yourcompany_Yourmodule_Model</class> </yourmodule> </models> </global> <frontend> <events> <catalog_controller_product_view> <observers> <yourmodule> <class>Yourcompany_Yourmodule_Model_Observer</class> <method>catalog_controller_product_view</method> </yourmodule> </observers> </catalog_controller_product_view> </events> </frontend> </config> </code></code></pre> <p class="cn">app/code/local/Yourcompany/Yourmodule/Model/Observer.php<em class="showen"></p> <p class="en">app/code/local/Yourcompany/Yourmodule/Model/Observer.php</p> <pre><code><code><?php class Yourcompany_Yourmodule_Model_Observer { /** * Change product meta title on product view * * @pram Varien_Event_Observer $observer * @return Yourcompany_Yourmodule_Model_Observer */ public function catalog_controller_product_view(Varien_Event_Observer $observer) { if ($product = $observer->getEvent()->getProduct()) { $title = $product->getData('brand') . ' ' . $product->getData('name') . ' ' . $product->getData('sub_title'); $product->setMetaTitle($title); } return $this; } } </code></code></pre> </div> <div class=""> <p><strong>相关文章</strong></p> </div> </article> </div> </main> <footer> <div class="container"> <p> <span>友情链接:</span> <a href="https://www.688576.com" target="_blank">雨伦博客</a>   <a href="https://www.yaanbbs.net" target="_blank">雅安论坛</a> </p> <a href="https://beian.miit.gov.cn" target="_blank">京ICP备15023317号-6</a> </div> </footer> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?30b42218aa13759c43de5f1971d0a93b"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>