Приоритет у карты сайта по уровню вложенности

Здравствуйте! При использовании pdoSitemap приоритеты у документов расставляются в зависимости от последнего редактирования. Можно ли как-то устанавливать приоритет в зависимости от уровня вложенности документа ( у главной страницы — 1, у потомков 1-го уровня 0.8 и т.д) используя этот сниппет? Или может кто-то знает другие инструменты подходящие для этой цели?
Евгений
11 марта 2017, 08:21
modx.pro
1 541
0

Комментарии: 4

Алексей Федоров
11 марта 2017, 12:59
+2
Самый простой вариант — создать TV, подключить его к вызову и поменять в чанке вызов плейсхолдера [[+priority]] на свою тв-шку.
P.S.: Значение приоритета указывается, чтобы объяснить роботам ПС как часто происходит обновление контента на странице. При этом, если роботы посчитают, что данные ошибочны они вполне себе легко выставят в своих базах другой приоритет, так что тут нужно с пониманием подходить.

Ах, да! Еще одна штука, которую вспомнил. Нужно проверить какую именно дату обновления выставляет сниппет (у меня пока не дошли руки, но если кто-то проверял, то надеюсь отпишется ниже). Штука в том, что обновление документа для modx и фактическое обновление содержимого страницы не всегда равнозначны. К примеру, эта страница. Обновление в комментариях не равно обновлению контента))
    Евгений
    11 марта 2017, 20:12
    0
    Хм, а ну допустим католог, в каждом 10 категорий, в них по 3-4 категории, и в каждой по товаров 10-20, каждому выставить приоритет, меня интересует как выставить в таком случае приоритет автоматически?
      Алексей Федоров
      11 марта 2017, 21:05
      +1
      Если сайт уже содержит много ресурсов, то есть несколько вариантов:
      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.
        Евгений
        15 марта 2017, 22:29
        0
        Спасибо за развернутый ответ!
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4