WillWill Опубликовано 28.06.2022 в 11:48 Поделиться Опубликовано 28.06.2022 в 11:48 Добрый день! Никак не могу найти как указать rel="canonical" для страниц пагинации в ocStore 2.3 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
mpn2005 Опубликовано 28.06.2022 в 15:05 Поделиться Опубликовано 28.06.2022 в 15:05 Добрый день. Это всё делается в контроллере catalog/controller/product/category.php Там есть вот такой участок кода: Спойлер Если вы хотите сделать каждую страницу канонической, то перед строкой: 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'); } 3 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
WillWill Опубликовано 4.07.2022 в 13:27 Автор Поделиться Опубликовано 4.07.2022 в 13:27 Спасибо большое! Запутался я с этой пагинацией) Вот, что я хочу сделать: по рекомендации Платона https://yandex.ru/blog/platon/2878 п.2. первую страницу со списком товаров https://site.ru/kategoriya/ нужно сделать канонической, а остальные неканоническими ( в качестве канонического (главного) адреса указывать первую страницу каталога) https://site.ru/kategoriya/?page=2, https://site.ru/kategoriya/?page=3 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Решение mpn2005 Опубликовано 4.07.2022 в 14:44 Решение Поделиться Опубликовано 4.07.2022 в 14:44 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( 3 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
WillWill Опубликовано 4.07.2022 в 15:40 Автор Поделиться Опубликовано 4.07.2022 в 15:40 Спасибо, большое! Получилось 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
WillWill Опубликовано 5.07.2022 в 01:37 Автор Поделиться Опубликовано 5.07.2022 в 01:37 Добрый день! А если тоже самое сделать в категории Производители в файле 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'); } Правильно? 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
mpn2005 Опубликовано 5.07.2022 в 06:09 Поделиться Опубликовано 5.07.2022 в 06:09 4 часа назад, WillWill сказал: Правильно? Почти. Вот так надо: if ($page > 1) { $this->document->addLink($this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id']), 'canonical'); } 2 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.