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

    (@sergeybiryukov)

    Live and Learn

    4 — это ID главной странички

    Если она указана главной в настройках чтения, то параметр p=4 в правиле указывать не нужно. Попробуйте оставить только tovar:

    add_rewrite_rule('([0-9]{1,10}_[0-9]{1,10})/?$','index.php?tovar=$matches[1]','top');

    Не забудьте пересохранить настройки постоянных ссылок, чтобы правило обновилось в базе данных. У меня после этих действий перенаправление пропало.

    Теперь не перенаправляет, но обрабатывается не та страница которая указана как главная, а файл index.php в шаблоне темы.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Правильный вариант (вдруг кому-нибудь пригодится):

    function url_rewrite() {
    	add_rewrite_tag( '%tovar%', '([^&]+)' );
    	add_rewrite_rule( '^([0-9]{1,10}_[0-9]{1,10})/?$', 'index.php?page_id=5299&tovar=$matches[1]', 'top' );
    }
    add_action( 'init', 'url_rewrite' );
    1. tovar — имя передаваемого параметра.
    2. ?page_id=5299 — ID страницы. Предполагается, что она назначена главной, но это не обязательно.
    3. После добавления или изменения кода нужно зайти в настройки постоянных ссылок, чтобы пересоздались правила.
Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «почему редиректит» закрыта для новых ответов.