Поддержка Проблемы и решения Ошибка в формировании чпу

  • В настройках ЧПУ стоит: /%category%/%postname%

    Мне нужно чтобы формировались страницы (название страницы — это артикул продукции) типа: http://www.sitename.ru/katalog/01234

    Вместо этого получается так: http://www.sitename.ru/katalog/01234-2

    Т.е. зачем-то в конце адреса подставляется -2.

    Причем это касается только цифрового названия страницы.

    Как сделать так, чтобы не было этих -2? Помогите, пожалуйста!!!

    p.s.Страницы создаются с уникальными номерами, т.е. двоечка добавляется не потому что такая страница уже есть.

Просмотр 15 ответов — с 1 по 15 (всего 15)
  • А точно нет? В корзине или в постах другого типа?

    Точно нет! Уже пробовала самые разные комбинации цифр — ко всем добавляет -2.

    Мне нужно чтобы формировались страницы

    Называйте сущности своими именами — это посты. Или вы смогли привязать страницы к категориям?

    Т.е. зачем-то в конце адреса подставляется -2.

    Если в БД имеется запись с таким-же слагом, то слаг новой записи будет идти с инкрементом: -1,-2,-3 и тд.. Это сделано для предотвращения коллизий.

    Причем это касается только цифрового названия страницы.

    Не только.

    Как сделать так, чтобы не было этих -2?

    Давать уникальные названия, и соответственно слаги, для своих записей.

    —-
    Смутно помню, лет пару назад поднимали этот вопрос, возможно, всё из-за нуля, который в вашем артикуле идет первым…

    Благодарю за ответ! Уточняю:

    Называйте сущности своими именами — это посты. Или вы смогли привязать страницы к категориям?

    katalog — это название родительской страницы; 01234 — название дочерней страницы.

    Давать уникальные названия, и соответственно слаги, для своих записей.

    Пробую давать самые разные комбинации цифр, которых точно не могло быть раньше (переношу сайт на вордпресс и пока что там всего несколько страниц есть).

    Смутно помню, лет пару назад поднимали этот вопрос, возможно, всё из-за нуля, который в вашем артикуле идет первым…

    При вариантах названия страниц с других цифр, а не с «0», эффект тот же: добавляет -2. Причем и на локальном сервере, и на хостинге…

    В чем заключается проблема и в какую сторону копать — не пойму…Поиск и здесь на форуме, и по всему интернету результатов, к сожалению, не дал.

    А может посмотреть в БД? Может затесались-таки какие-то страницы. Или создаются дубли.

    Благодарю за ответ!

    Начала разглядывать свою БД. Получается, что я публикую все записи от имени автора с id=2.

    Может ли именно эта двоечка добавляться к названию страницы? Можно ли еще где-то это посмотреть, кроме настроек ЧПУ? Например, в файлах вордпресса или настройках БД?

    Плагины и тему отключали? Движок перезаливали?

    Получается, что я публикую все записи от имени автора с id=2.

    Может ли именно эта двоечка добавляться к названию страницы?

    Теоретически может, если это специально кем-то установлено. Но маловероятно.

    Спасибо большое, что стараетесь помочь!!!

    Плагины отключала-включала. Тему отключала, включала другую. Движок сегодня обновила до версии 3.8. Результат — тот же…

    Даже уж и не знаю где искать этот глюк…

    Причем странно то, что если задаешь буквенное название страницы, то «-2» к концу не добавляется! А именно только к цифровым названиям!

    Проблема имеет место быть. Смотрите внутренности бегемота http://core.trac.wordpress.org/browser/tags/3.8/src/wp-includes/post.php#L3090

    Поняла, огромное спасибо!!! Попробую теперь поискать в этом файле!

    Проблема, как мне понимается, в регулярке, видимо, забыли о слеше.. По крайней мере этот вариант работает со страницами (остальное не проверял)
    "@^($wp_rewrite->pagination_base)?/\d+$@"

    Интересный вопрос.. Поставил ВП ради такого случая 🙂
    Первый вариант ответа в корне не верный.

    Смысл данного регулярного выражения в том, что слово page зарезервировано за пагинацией при включенном ЧПУ. Поэтому, чтобы не возникало конфликтов проверяется на «вшивость» слаг страницы и если совпадает со словом page, то добавляет инкремент..

    В остальных случаях я, пока, не вижу необходимости сего действа, в том числе и проверки цифр в хвосте слага..
    Наиболее предпочтительный вариант, видимо, такой:
    preg_match( "@^($wp_rewrite->pagination_base)$@", $slug )

    Может и упускаю что из вида, Сообщество позвонит (тьфу) :)) поможет!

    Ага. Есть же ЧПУ вида /%post_id%

    Увы, @Stasy1, подвергать исправлению эту «фичу» крайне сомнительное действие.. Лучше сказать так — совсем неразумное 🙂

    ===
    Теоретически можно дополнить проверкой на «действительно ли уже иерархия» (то бишь, вложена страница внутрь другой или нет), тогда, предположу, имееет смысл не добавлять инкремент к слагу.. Ведь посты со своими ID уже никак не пересекутся с вложенными страницами… Как то так 🙂

    Интерес пропал 🙂
    Откланиваюсь.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Возможно, будет полезен плагин Allow Numeric Stubs:
    http://wordpress.org/plugins/allow-numeric-stubs/

    Огромное спасибо всем-всем за отзывчивость!!! А Sergey Biryukov особенно, за этот супер-вариант!!!

    Проблема решилась простой установкой плагина Allow Numeric Stubs: сразу же все -2 куда-то просто исчезли ))) То, что нужно!

    БЛАГОДАРЮ еще раз!!!!!! Удачных выходных )))

Просмотр 15 ответов — с 1 по 15 (всего 15)
  • Тема «Ошибка в формировании чпу» закрыта для новых ответов.