WillWill Posted June 28, 2022 at 11:48 AM Share Posted June 28, 2022 at 11:48 AM Добрый день! Никак не могу найти как указать rel="canonical" для страниц пагинации в ocStore 2.3 0 Quote Link to comment Share on other sites More sharing options...
mpn2005 Posted June 28, 2022 at 03:05 PM Share Posted June 28, 2022 at 03:05 PM Добрый день. Это всё делается в контроллере 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 Quote Link to comment Share on other sites More sharing options...
WillWill Posted July 4, 2022 at 01:27 PM Author Share Posted July 4, 2022 at 01:27 PM Спасибо большое! Запутался я с этой пагинацией) Вот, что я хочу сделать: по рекомендации Платона https://yandex.ru/blog/platon/2878 п.2. первую страницу со списком товаров https://site.ru/kategoriya/ нужно сделать канонической, а остальные неканоническими ( в качестве канонического (главного) адреса указывать первую страницу каталога) https://site.ru/kategoriya/?page=2, https://site.ru/kategoriya/?page=3 0 Quote Link to comment Share on other sites More sharing options...
Solution mpn2005 Posted July 4, 2022 at 02:44 PM Solution Share Posted July 4, 2022 at 02:44 PM 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 Quote Link to comment Share on other sites More sharing options...
WillWill Posted July 4, 2022 at 03:40 PM Author Share Posted July 4, 2022 at 03:40 PM Спасибо, большое! Получилось 0 Quote Link to comment Share on other sites More sharing options...
WillWill Posted July 5, 2022 at 01:37 AM Author Share Posted July 5, 2022 at 01:37 AM Добрый день! А если тоже самое сделать в категории Производители в файле 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 Quote Link to comment Share on other sites More sharing options...
mpn2005 Posted July 5, 2022 at 06:09 AM Share Posted July 5, 2022 at 06:09 AM 4 часа назад, WillWill сказал: Правильно? Почти. Вот так надо: if ($page > 1) { $this->document->addLink($this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id']), 'canonical'); } 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.