动态获取magento元关键字?

时间:2011-09-30 06:12:14

标签: magento seo meta

在magento的Product页面上,我想在meta keywords标签中获取产品名称,类别名称和子类别名称。

请帮助!!

提前致谢。

3 个答案:

答案 0 :(得分:4)

由于产品已经附加了MetaKeyword值,因此您可以使用观察者不引人注意地扩展该值。此方法不涉及扩展核心类

试试这个:

/app/code/local/YourCompany/YourModule/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <YourCompany_YourModule>
            <version>1.0.0</version>
        </YourCompany_YourModule>
    </modules>
    <global>
        <models>
            <YourCompany_YourModule>
                <class>YourCompany_YourModule_Model</class>
            </YourCompany_YourModule>
        </models>
    </global>
    <frontend>
        <events>
            <catalog_controller_product_view>
                <observers>
                    <YourCompany_YourModule>
                        <class>YourCompany_YourModule/Observer</class>
                        <method>productView</method>
                    </YourCompany_YourModule>
                </observers>
            </catalog_controller_product_view>
        </events>
    </frontend>
</config>

/app/code/local/YourCompany/YourModule/Model/Observer.php

<?php
class YourCompany_YourModule_Model_Observer
{

    public function productView(Varien_Event_Observer $observer)
    {
        $product = $observer->getEvent()->getProduct();
        /* @var $product Mage_Catalog_Model_Product */

        if ($product) {
            $keywords = $product->getMetaKeyword();

            // Add the product name
            $keywords = ' ' . $product->getName();

            // Add the category name
            $currentCategory = Mage::registry('current_category');
            if ($currentCategory && $currentCategory instanceof Mage_Catalog_Model_Category) {
                $keywords = ' ' . $currentCategory->getName();
            }

            $product->setMetaKeyword($keywords);
        }
    }

}

答案 1 :(得分:1)

您必须重写Mage_Catalog_Block_Product_View类,尤其是__preparelayout()方法。

只需在要覆盖的_prepareLayout方法中添加以下代码:

protected function _prepareLayout()
{
    $currentCategory = Mage::registry('current_category'); // For accessing current category information
    $product = $this->getProduct();

    if ($headBlock = $this->getLayout()->getBlock('head')) {
      $headBlock->setTitle("Whatever you want here");   
      $product->setMetaKeyword("whatever, keywords, you, want, here");   
      $product->setMetaDescription("Whatever description you want here);   
    }

    return parent::_prepareLayout();
}

以上述方式设置元关键字和元描述非常重要,否则它将被父类重写。

此致 肯尼

答案 2 :(得分:0)

您是否意味着产品详情页面?如果是的话意味着非常简单

转到您的特定产品页面,应该有标签“元信息”。您可以添加

Meta Title, Meta Keywords, Meta Description