Приоритет у карты сайта по уровню вложенности
Здравствуйте! При использовании pdoSitemap приоритеты у документов расставляются в зависимости от последнего редактирования. Можно ли как-то устанавливать приоритет в зависимости от уровня вложенности документа ( у главной страницы — 1, у потомков 1-го уровня 0.8 и т.д) используя этот сниппет? Или может кто-то знает другие инструменты подходящие для этой цели?
Комментарии: 4
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
P.S.: Значение приоритета указывается, чтобы объяснить роботам ПС как часто происходит обновление контента на странице. При этом, если роботы посчитают, что данные ошибочны они вполне себе легко выставят в своих базах другой приоритет, так что тут нужно с пониманием подходить.
Ах, да! Еще одна штука, которую вспомнил. Нужно проверить какую именно дату обновления выставляет сниппет (у меня пока не дошли руки, но если кто-то проверял, то надеюсь отпишется ниже). Штука в том, что обновление документа для modx и фактическое обновление содержимого страницы не всегда равнозначны. К примеру, эта страница. Обновление в комментариях не равно обновлению контента))
1) Проставить все вручную. Если в ТВ по умолчанию поставить приоритет для самого большого количества ресурсов — товаров, то дальше менять ручками придется только значения у подкатегорий, категорий и каталогов. Такая вот тонкость))
2) Написать плагин, который сам пройдет по всем ресурсам и проставит значения в зависимости от уровня в иерархии. Тут ничем не подскажу, так остается только у более опытных товарищей спрашивать.
3) Воспользоваться pdoMenu с параметром &showHidden для выборки со скрытыми в меню ресурсами и параметром &levelClass, показатель которого вызывается в чанке плейсхолдером [[+classes]]. Для красоты понадобиться знать точное количество уровней. Если их 5 (главная, каталог, категория, подкатегория, товар), то нужно понимать порядок величин. Создаем tv prior со значением 1,1 и дальше изгаляемся. То есть что-то такое вставить в чанке:
Это выражение математических операций из tv вычитаем показатель classes, деленный на 10. То есть если укажем &levelClass=`1` то получим для первого уровня (главная) 1,1-1/10 = 1. Для второго уровня 1,1-12/10=0,98 (+classes будет принимать значения по порядку 1, 11, 12, 13) и т.д. Правильное значение и нужное математическое уравнение для расчета, который позволит получить красивые цифры, предлагаю разобрать самостоятельно. Доки по модификаторам в помощь. И наконец четвертый вариант — самый верный и самый правильный.
4) Не страдать ерундой. Как только роботы ПС вычислят, что контент обновляется не так, как указано в карте сайта (а так и будет) они плюнут на это и расставят страницам свой приоритет, чтобы ходить так как считают нужным. Эта штука — приоритет — носит рекомендательный характер, а не заставит робота ходить строго по струнке как allow — disallow в robots.txt.