Как динамическое генерировать метатеги протокола открытого графика

magento.stackexchange https://magento.stackexchange.com/questions/16272

Вопрос

<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');

Очистите кэш, когда вы закончите.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top