• Wordpress ЧПУ из GET параметров?

    orlov0562
    @orlov0562
    I'm cool!
    Формат тут такой
    add_rewrite_rule( '<регулярка>', '<редирект>', 'top' );


    в регулярке у тебя должно быть
    /catalog/platforms/android/oreo/100/1000/russia/all/all


    выглядеть это будет так
    catalog/platforms/([^/]+)/([^/]+)/(\d+)/(\d+)/([^/]+)/([^/]+)/([^/]+)

    соответственно получишь такие карманы
    $matches[0] = /catalog/platforms/android/oreo/100/1000/russia/all/all
    $matches[1] = android ; регулярка ([^/]+)
    $matches[2] = oreo ; регулярка ([^/]+)
    $matches[3] = 100 ; регулярка (\d+)
    $matches[4] = 1000 ; регулярка (\d+)
    $matches[5] = russia ; регулярка ([^/]+)
    $matches[6] = all ; регулярка ([^/]+)
    $matches[7] = all ; регулярка ([^/]+)


    теперь используешь эти карманы в замене
    index.php?pagename=catalog&p_from=$matches[3]&p_to=$matches[4]&country=$matches[5]&style=$matches[6]&type=$matches[7]

    в итоге url должен после редиректа получится такой
    index.php?pagename=catalog&p_from=100&p_to=1000&country=russia&style=all&type=all

    * обрати внимание что android и oreo в url не попали, тебе их при необходимости надо добавить согласно твоих параметров

    Итоговое выражение для редиректа
    add_rewrite_rule(
     'catalog/platforms/([^/]+)/([^/]+)/(\d+)/(\d+)/([^/]+)/([^/]+)/([^/]+)', 
     'index.php?pagename=catalog&p_from=$matches[3]&p_to=$matches[4]&country=$matches[5]&style=$matches[6]&type=$matches[7]', 
     'top' 
    );

    После того, как сохранишь, надо сходить в админку, в раздел "Настройки - Постоянные ссылки" и нажать кнопку [Сохранить изменения]

    Затем надо открыть .htaccess и убедиться что создалось корректное правило.
    Ответ написан
    1 комментарий