我们使用WYSIWYG编辑器进行产品描述,其中包含HTML标签。然而,Magento正在使用产品页面标题中的元内容描述中的所有内容,这使得当人们在社交网络上共享页面时它变得难看,因为描述由原始HTML标记组成。
例如,在this page上,元描述如下所示:
<meta name="description" content="<div class="short-description">
<div class="std">
<ul>
<li>Colored bridesmaid dress made in lace and taffeta</li>
<li>The top is made of ivory French corded lace, the skirt is made of colored taffeta</li>
<li>Straight front neckline, V Back</li>
<li" />
我的问题是如何摆脱标签,以便只在说明中使用文字?我不知道要看哪个模板。任何帮助,将不胜感激!谢谢!
答案 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; - )