Opencart dynamic OG meta tag

23.10.2014 10:01:34 Просмотров 17 Источник

мой сайт 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 показывает логотип магазина вместо изображений продукта.

Что же делать?

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/26522131/opencart-dynamic-og-meta-tag#comment41704695_26522131
Я проверил, и это работает, он показывает изображение продукта вместо логотипа

Ответы - Opencart dynamic OG meta tag / Opencart dynamic OG meta tag

Является ответом!
tuananhqp

14.05.2015 08:33:09

В заголовке темы.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/.php, сразу после: $this - > data ['name'] = $this - >>config - >>>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();
Muhammed FISEK

24.06.2019 06:19:29

Вы выполняете несколько запросов в методе, упомянутом выше. Не очень хорошая идея для выступления.

Попробуйте коды, которые я написал ниже

откройте файловую систему / библиотеку.документ.РНР

private $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 ()>> after

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

откройте файл catalog / view/theme/YOURTHEME/template/common / header.прутик и найти {% for link в links %} перед

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

и еще одна последняя операция

откройте файл catalog / product/product.php и найдите $this - > document - >>setTitle($product_info ['meta_title'])>> before

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

и это нормально.

Хорошего дня.

Закрыть X