- Автор темы
- #1
Добрый вечер.
Давно мне не нравились дубли в пагинации и сортировки категорий PrestaShop, решил с этим что то сделать. Решение с использованием rel="canonical", все просто:
идем в
controllers\front\CategoryController.php
после "$this->assignProductList();" 118 строка
вставляем:
в "$this->context->smarty->assign" к примеру после "'category' => $this->category,"
вставляем:
таким образом мы передали в шаблонизатор Smarty переменную $canonical с урлом категории.
далее идем в themes\default-bootstrap\header.tpl
ищем
меняем на
тут мы делаем проверку на наличие переменной $canonical и выводим нужный нам rel="canonical"
Пока писал пост, подумал, что возможно rel="canonical" стоит выводить только для сортировки а для пагинации скрывать текст и все, как вы считаете?
Давно мне не нравились дубли в пагинации и сортировки категорий PrestaShop, решил с этим что то сделать. Решение с использованием rel="canonical", все просто:
идем в
controllers\front\CategoryController.php
после "$this->assignProductList();" 118 строка
вставляем:
PHP:
if (Tools::getValue('p') || Tools::getValue('orderby'))
$canonical = $this->context->link->getCategoryLink($this->category);
в "$this->context->smarty->assign" к примеру после "'category' => $this->category,"
вставляем:
PHP:
'canonical' => $canonical,
таким образом мы передали в шаблонизатор Smarty переменную $canonical с урлом категории.
далее идем в themes\default-bootstrap\header.tpl
ищем
HTML:
<meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" />
меняем на
HTML:
{if isset($canonical) AND $canonical}
<link rel="canonical" href="{$canonical|escape:'html':'UTF-8'}" />
{else}
<meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" />
{/if}
тут мы делаем проверку на наличие переменной $canonical и выводим нужный нам rel="canonical"
Пока писал пост, подумал, что возможно rel="canonical" стоит выводить только для сортировки а для пагинации скрывать текст и все, как вы считаете?