Додаємо мета теги в Opencart 2
Для початку давайте розберемося, що таке розмітка Open Graph. Це протокол, який дозволяє керувати та контролювати дані, що формуються у прев'ю (структурує інформацію про сторінку) у пості, коли користувач ділиться посиланням у соціальних мережах. Насправді це кілька рядків мета-тегів, які потрібно впровадити в код вашого сайту. Саме вони й дозволять сформувати бажаний вид для посту у соціальних мережах.
Розглянемо кожен тег Open Graph окремо і розберемося в їх значеннях:
- "og:locale" — вказує на локалізацію (мова сайту), можна використовувати значення "ru_RU" за замовчуванням.
- "og:type" — вказує тип сторінки (стаття, новина, відео, категорія тощо), можна використовувати за замовчуванням "article".
- "og:title" — вказує заголовок статті.
- "og:description" — вказує короткий опис, який виводиться при формуванні попереднього посилання.
- "og:url" — посилання на сторінку сайту.
- "og:image" — посилання на картинку, яка відображатиметься в пості.
- "og:site_name" — назва сайту.
Так ось. Правити файли безпосередньо . Що небажано та Потрібно це робити через модифікатор ocmod.
Але для наочності робитимемо так.
Знайдемо файл document.php на шляху system/library
Додаємо в клас document нову приватну змінну та робимо її масивом.
знаходимо там private $keywords; та нижче додаємо
до
class Document {
private $title;
private $description;
private $keywords;
private $links = array();
private $styles = array();
private $scripts = array();
після
class Document {
private $title;
private $description;
private $keywords;
private $metatag = array();//додаємо
private $links = array();
private $styles = array();
private $scripts = array();
Потім додаємо публічну функцію для додавання вмісту до наших тегів
public function addMeta($meta) {
$this->metatag[] = $ meta;
}
Для звернення до цієї функції додаємо ще одну
public function getMeta() {
return $this->metatag;
}
Робота з файлом document.php закінчена.
Далі нам потрібно вирішити де будемо виводити ці теги. Якщо у картці товару шукаємо файл catalog/controller/product/product.php
Далі просто викликаємо функцію addMeta() і передаємо їм значення.
наприклад, зробимо поле og:image
Шукаємо $data['products'][] ;
$this->document->addLink($image);// тут у масив тегів запишемо значення картинки
$data['products'][] = array(
'product_id' => $result['product_id'],
'thumb' => $image,
'name' => $result['name'],
'quantity' => $result['quantity'],
'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
'price' => $price,
'special' => $ Special,
'tax' => $tax,
'minimum' => $result['minimum'] > 0? $result['minimum'] : 1,
'rating' => $rating,
'href' => $this->url->link('product/product', 'product_id=' . $result['product_id'])
);
Так можна кілька разів викликати цю функцію та додавати ці значення до набору.
Щоб додати цю інформацію в шапку header, шукаємо файл catalog/controller/common/header.php
Додаємо рядок для виведення вмісту тегів, що ми записали вище.
$data['meta_tag'] = $this->document->getMeta();
Тепер у шаблоні header.tpl у змінній $meta_tag — масив значень наших тегів.
Можете виводити їх з масиву.
Думаю далі немає сенсу показувати як вивести вміст масиву.