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