Перейти к содержанию

rel="canonical" для страниц пагинации в ocStore 2.3


Перейти к решению Решений mpn2005,

Рекомендуемые сообщения

Добрый день.

Это всё делается в контроллере catalog/controller/product/category.php

Там есть вот такой участок кода:

Спойлер

image.png

 

Если вы хотите сделать каждую страницу канонической, то перед строкой:

if ($limit && ceil($product_total / $limit) > $page) {

 

Добавьте вот это:

if ($page > 1) {
    $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. $page, true), 'canonical');
}

 

Ссылка на комментарий
Поделиться на другие сайты

Спасибо большое!

Запутался я с этой пагинацией)

Вот, что я хочу сделать: по рекомендации Платона https://yandex.ru/blog/platon/2878 п.2. первую страницу со списком товаров 

https://site.ru/kategoriya/

  нужно сделать канонической, а остальные неканоническими ( в качестве канонического (главного) адреса указывать первую страницу каталога)

 https://site.ru/kategoriya/?page=2, https://site.ru/kategoriya/?page=3

Ссылка на комментарий
Поделиться на другие сайты

  • Решение
1 час назад, WillWill сказал:

нужно сделать канонической, а остальные неканоническими ( в качестве канонического (главного) адреса указывать первую страницу каталога)

Тогда вот так.

Перед строкой:

if ($limit && ceil($product_total / $limit) > $page) {

 

Добавьте вот это:

if ($page > 1) {
    $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'], true), 'canonical');
}

 

Но тут есть один момент, для второй страницы этот canonical перетрёт meta тег prev.

Из коробки в движке идёт запись ссылок по url, и при совпадении они перетираются.

А для второй страницы prev и canonical как раз будут совпадать.

 

Если надо, то и это можно поправить. Но нужно будет доработать библиотеку system/library/document.php.

Там надо вот эту строку:

$this->links[$href] = array(

Заменить вот на эту:

$this->links[$rel.'_'.$href] = array(

 

Ссылка на комментарий
Поделиться на другие сайты

Добрый день!

А если тоже самое сделать в категории Производители

в файле catalog/controller/product/manufacturer.php

Перед строкой:

if ($limit && ceil($product_total / $limit) > $page) {

 

Добавьте вот это?

if ($page > 1) {
    $this->document->addLink($this->url->link('product/manufacturer', 'path=' . $manufacturer_info['manufacturer_id'], true), 'canonical');
}

Правильно?

 

Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, WillWill сказал:

Правильно?

Почти.

 

Вот так надо:

if ($page > 1) {
    $this->document->addLink($this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id']), 'canonical');
}

 

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...