Как динамично генерировать мета-теги протокола Open Graph
<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
в мета-теге и получите пустую страницу, но изображения в представлении продукта работают нормально.
Это меня очень смущает.
5
1 answers
Вам нужно добавить это в один из ваших файлов макета:
<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');
Очистите кэш, когда закончите.
12
Author: Marius, 2014-03-06 09:17:03