Как динамическое генерировать метатеги протокола открытого графика
-
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');
Очистите кэш, когда вы закончите.
Не связан с magento.stackexchange