Убрать canonical для фильтрации

ЕСТЬ РЕШЕНИЕ InstantCMS 2.X
#1 13 ноября 2021 в 15:33

Доброго дня!

В обновлении 2.14 был добавлен каноникал для фильтров. Безусловно полезная вещь. Но в моем случае она абсолютно не нужна, так как страницы фильтрации настраиваются с помощью компонента «Редирект-Центр» от Лодыря (имеют свои урл, тайтлы, h1 и т.д.) и участвуют в продвижении.

Вопрос: как отключить функционал добавления каноникал для страниц фильтрации?

#3 13 ноября 2021 в 22:38

 Loadырь, спасибо. Я так понимаю, эта строка отвечает за вывод каноникла на всех страницах со списками материалов.

В условии проверяется, что если страница не главная, то вставляется код каноникла.

  1. if (!$is_frontpage)

Как правильно изменить это условие, чтобы и на страницах фильтрации он не вставлялся?

#4 14 ноября 2021 в 00:40

Тут скорее так надо прописать

  1. // если не на главной
  2. if (!$is_frontpage) {
  3. // canonical
  4. if (!$this->list_filter){ // тут: если не список фильтра
  5. $this->cms_template->addHead('<link rel="canonical" href="' . $this->cms_config->host . (is_array($page_url) ? $page_url['base'] : $page_url) . '"/>');
  6. }
  7. // если название переопределено, а мы по оригинальному адресу,
  8. // то редиректим со старого на новый адрес
  9. if ($this->remap_redirect_ctype) {
  10. $this->redirect(href_to($this->remap_redirect_ctype . ($dataset ? '-' . $dataset : ''), !empty($category['slug']) ? $category['slug'] : ''), 301);
  11. }
  12. }
  13.  
#5 14 ноября 2021 в 10:20

 Loadырь, тоже пытался с помощью 

  1. if (!$this->list_filter)

Но каноникал все равно выводится.

Вопрос: может быть так, что данное условие не срабатывает потому что страница фильтрации имеет свой урл (создана страница через РЦ) и система не понимает, что мы находимся на странице фильтра?

#6 14 ноября 2021 в 16:04

 Kerncraft1, а если удалить эту строку, каноникал выведется? Возможно он в шаблоне ещё добавляется?

#7 16 ноября 2021 в 16:12

 Loadырь,  если удалить: 

  1. // canonical
  2. $this->cms_template->addHead('<link rel="canonical" href="' . $this->cms_config->host . (is_array($page_url) ? $page_url['base'] : $page_url) . '"/>');

То каноникал пропадает и с основного листинга и со страниц фильтрации соответственно. Но на листинге я бы его хотел оставить.

Может @Fuze подскажет, как безболезненно убрать каноникал со страниц фильтрации?

#8 17 ноября 2021 в 07:14
  1. // если не на главной
  2. if (!$is_frontpage) {
  3. // canonical
  4. if (!$this->cms_core->uri_query){
  5. $this->cms_template->addHead('<link rel="canonical" href="' . $this->cms_config->host . (is_array($page_url) ? $page_url['base'] : $page_url) . '"/>');
  6. }
  7. // если название переопределено, а мы по оригинальному адресу,
  8. // то редиректим со старого на новый адрес
  9. if ($this->remap_redirect_ctype) {
  10. $this->redirect(href_to($this->remap_redirect_ctype . ($dataset ? '-' . $dataset : ''), !empty($category['slug']) ? $category['slug'] : ''), 301);
  11. }
  12. }
  13.  
#9 18 ноября 2021 в 09:43

 Loadырь, Большое спасибо! Работает!

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.