Opencart动态OG元标记

时间:2014-10-23 06:01:34

标签: php facebook share opencart

我的网站http://goo.gl/aWQnd9

Opencart 1.5.5.1

我使用此代码动态获取正确的产品图片

<meta property="og:image" content="<?php echo $thumb; ?>"/>

<meta property="og:image" content="<?php echo _GET['image] ?>"/>

<meta property="og:image" content="<?= $_GET['image'] ?>" />

但没有结果。每次Fb显示商店徽标和正确的标题和正确的描述,但当我尝试通过addthis.com扩展分享产品页面时,fb显示商店徽标而不是产品图片。

怎么办?

2 个答案:

答案 0 :(得分:3)

在你的主题header.tpl中添加:

<!-- mod og:image para FB -->
<?php if ($thumb || $images) { ?>
<meta property="og:image" content="<?php echo $thumb; ?>">
<?php } else { ?>
<meta property="og:image" content="<?php echo $logo; ?>">
<?php } ?>
<!-- mod og:image para FB -->

在controller / common / header.php中,紧跟在:$ this-&gt; data ['name'] = $ this-&gt; config-&gt; get('config_name');添加:

if (isset($this->request->get['product_id'])) {
         $product_id = (int)$this->request->get['product_id'];
      } else {
         $product_id = 0;
      }

      $this->load->model('catalog/product');
      $product_info = $this->model_catalog_product->getProduct($product_id);      
      $this->data['product_info'] = $product_info;
      if ($product_info['image']) {
            $this->data['thumb'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height'));
         } else {
            $this->data['thumb'] = '';
         }         
         $this->data['images'] = array();

答案 1 :(得分:0)

您可以使用上述方法执行多个查询。性能不是一个好主意。

尝试我在下面编写的代码

打开文件 system / library.document.php

私有$ scripts = array(); 之后

private $metas = array();

函数名称:位于

之后的getLinks()
public function addMeta($keyword, $value) {
    $this->metas[$keyword] = array(
        'keyword' => $keyword,
        'value' => $value
    );
}

public function getMeta() {
    return $this->metas;
}

打开文件 catalog / controller / header.php ,并在之后找到 $ this-> document-> getStyles()

$data['metas'] = $this->document->getMeta();

打开文件 catalog / view / theme / YOURTHEME / template / common / header.twig ,然后找到 {%链接中的链接%}

{% for meta in metas %}
    <meta property="{{ meta.keyword }}" content="{{ meta.value }}" />
{% endfor %} 

最后一项操作

打开文件 catalog / product / product.php 并找到 $ this-> document-> setTitle($ product_info ['meta_title'])之前

 $this->document->addMeta("tiwtter", $product_info['meta_title']);

没关系。

祝你有美好的一天。