在Magento中删除产品页面元描述中的标签?

时间:2013-07-16 10:11:03

标签: magento

我们使用WYSIWYG编辑器进行产品描述,其中包含HTML标签。然而,Magento正在使用产品页面标题中的元内容描述中的所有内容,这使得当人们在社交网络上共享页面时它变得难看,因为描述由原始HTML标记组成。

例如,在this page上,元描述如下所示:

<meta name="description" content="&lt;div class=&quot;short-description&quot;&gt;
&lt;div class=&quot;std&quot;&gt;
&lt;ul&gt;
&lt;li&gt;Colored bridesmaid dress made in lace and taffeta&lt;/li&gt;
&lt;li&gt;The top is made of ivory French corded lace, the skirt is made of colored taffeta&lt;/li&gt;
&lt;li&gt;Straight front neckline, V Back&lt;/li&gt;
&lt;li" />

我的问题是如何摆脱标签,以便只在说明中使用文字?我不知道要看哪个模板。任何帮助,将不胜感激!谢谢!

2 个答案:

答案 0 :(得分:3)

meta代码会在模板app/design/frontend/{interface}/{theme}/template/page/html/head.phtml中呈现,如下所示:

<meta name="description" content="<?php echo htmlspecialchars($this->getDescription()) ?>" />
<meta name="keywords" content="<?php echo htmlspecialchars($this->getKeywords()) ?>" />

我认为您可以将htmlspecialchars替换为strip_tags。您可能会为这些标签获得更好的价值 我不明白的是,这是怎么发生在你身上的。产品具有用于输入元描述和关键字的分隔字段,不使用WYSIWYG编辑器。如果您从产品说明中使用某些类型的自动填充这些字段,那么在填写字段之前剥离标记是个好主意。
[编辑]
您可以尝试用空格替换标记而不是剥离标记:

$description = preg_replace('#<[^>]+>#', ' ', $this->getDescription());

然后你可以删除双空格

$description = preg_replace('!\s+!', ' ', $description);

答案 1 :(得分:2)

复制此文件

/app/code/core/Mage/Catalog/Block/Product/View.php

在此文件夹中(之前创建它!)

app/code/local/Mage/Catalog/Block/Product/View.php

现在找到这段代码(Magento 1.9.1.0中的第67行)

$description = $product->getMetaDescription();
            if ($description) {
                $headBlock->setDescription( ($description) );
            } else {
                $headBlock->setDescription(Mage::helper('core/string')->substr($product->getDescription(), 0, 255));
            }

并将其编辑为

$description = $product->getMetaDescription();
            if ($description) {
                $headBlock->setDescription( ($description) );
            } else {
                $strippeddesc = html_entity_decode(strip_tags($product->getDescription()));
                $headBlock->setDescription(Mage::helper('core/string')->substr($strippeddesc, 0, 255));
            }

我添加了 $ strippeddesc ,其中包含产品说明内容,已清理并正确解码。

现在我们可以在google中拥有一些精彩的metadesc; - )