4

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

例如,在此页面上,元描述如下所示:

<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" />

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

4

2 回答 2

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()) ?>" />

我认为您可以替换htmlspecialcharsstrip_tags. 您可能会为这些标签获得更好的价值。
我不明白的是,这怎么会发生在你身上。产品具有用于输入元描述和关键字的单独字段,不使用所见即所得编辑器。如果您从产品描述中使用某种自动填充这些字段的方式,那么在填写字段之前剥离标签可能是个好主意。
[编辑]
您可以尝试用空格替换标签而不是剥离它们:

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

然后你可以删除双空格

$description = preg_replace('!\s+!', ' ', $description);
于 2013-07-16T10:18:25.710 回答
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 了;-)

于 2015-02-06T10:18:43.913 回答