如何动态生成打开的图形协议元标记
-
22-10-2019 - |
题
<meta property="og:url" content="<?php echo "http://". $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];?>"/>
<meta property="og:description" content=""/>
<meta property="og:title" content=""/>
<meta property="og:image" content=""/>
我已经测试过 head.phtml
文件,但我不知道如何获得这样的产品属性 sku
, color
和 images
.
我测试了 $this->helper('catalog/image')->init($_product, 'image')
在发现media.phtml
在元标签上并获取空白页,但是产品视图上的图像正常工作。
这让我感到困惑。
解决方案
您需要将其添加到您的一个布局文件中:
<catalog_product_view>
<reference name="head">
<block type="core/template" name="open-graph" as="open-graph" template="opengraph/product.phtml" />
</reference>
</catalog_product_view>
现在您需要创建文件 opengraph/product.phtml
内部主题(app/design/frontend/{package}/{theme}/template/
)以下内容:
<?php $_product = Mage::registry('current_product'); ?>
<?php if ($_product) : ?>
<meta property="og:url" content="<?php echo "http://". $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];?>"/>
<meta property="og:description" content="<?php echo htmlspecialchars($_product->getDescription())?>"/>
<meta property="og:title" content="<?php echo htmlspecialchars($_product->getName())?>"/>
<meta property="og:image" content="<?php echo $this->helper('catalog/image')->init($_product, 'image')?>"/>
<?php endif;?>
如果您需要包括 sku
或者 color
在那里,您可以这样得到这样的东西:
$sku = $_product->getSku();
$color = $_product->getAttributeText('color');
完成后清除缓存。