Поддержка Плагины Добавление своего правила перезаписи, 2 уточнения

  • Здравствуйте

    На странице справки по адресу есть готовый пример по добавлению своего правила перезаписи, он работает, всё ок. Меня смущает лишь фраза «dirty example».

    Вопрос #1: насколько правильный вариант указан в справке или лучше(почему?) использовать, к примеру, add_rewrite_rule & add_rerite_tag или в чём там ещё может быть неправильность?

    На основе упомянутого выше примера было создано собственное правило для обработки урла вида /download/123, всё работает корректно, кроме того, что урл вида /download/123/, т.е. со слешом на конце, также отрабатывает на ту же страницу, хотя в правило специально было добавлено отсутствие слеша в конце, а именно ‘download/([0-9]{1,})$’.

    Вопрос #2: буду благодарен, если поясните и дадите ссылку на справку, почему прописанное мной правило срабатывает и для слеша в конце, вместо отправки в 404, и как в этом случае правильно добавить редирект с / на без / в конце урла.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Меня смущает лишь фраза «dirty example».

    «Quick and dirty» — устойчивое выражение, можно перевести как «сделанный на скорую руку».

    устойчивое выражение

    Спасибо, что внесли свою лепту в моё гуманитарное образование :), т.е. можно считать, что пример из справки корректный.

    Может вы меня тогда ещё и направите по верному пути насчёт слеша в конце «своего правила перезаписи»? Правильно ли я понимаю, что в моём случае единственный вариант — использование хука redirect_canonical, если мне нужен URL без слеша в конце, томнее, чтобы WP сам делал редирект / -> без /, а не наоборот?

    Я вижу, что WP не обращает внимание на $wp_rewtite->use_trailing_slashes, если дело не касается стандартных структур, вроде записей, архивов, страниц и в любой кастомный урл добавляет в конце слеш. Но может я что-то просто упустил.

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