Wordpress добавить перенаправление правила перезаписи вместо "маскировки" - PullRequest
0 голосов
/ 15 мая 2019

Я сделал wordpress "add_rewrite_rule" для доступа к 2 переменным GET чистым способом.

Но пока, он только перенаправляет вместо "маскировки", он также теряет переменные GET. (сайт использует polylang в качестве плагина)

Я попытался включить add_rewrit_rule, добавив значения в виде "тегов", ...

function activateresetrule() {

    add_rewrite_rule(
        '^reset/([^/]*)/([^/]*)/?$',
        'index.php?page_id=1330&email=$matches[1]&uuid=$matches[2]',
        'top'
    );

    add_rewrite_rule(
        '^activate/([^/]*)/([^/]*)/?$',
        'index.php??page_id=1325&email=$matches[1]&uuid=$matches[2]',
        'top'
    );
    //delete when fixed
    global $wp_rewrite;
    $wp_rewrite->flush_rules(false);  
}
add_action( 'init', 'activateresetrule' );

add_filter( 'query_vars', 'activateresetrule_filter' );
function activateresetrule_filter( $query_vars ){
    $query_vars[] = 'email';
    $query_vars[] = 'uuid';
    return $query_vars;
}

Цель: https://www.site.be/reset/dfsdf/ddfsfds/ должен быть таким же, как https://www.site.be/reset&email=dfsdf&uuid=ddfsfds

Текущее перенаправление: / панель инструментов / пароль для сброса почты / (без переменных GET) (Это page_id 1330)

Thankyou

1 Ответ

0 голосов
/ 17 мая 2019

Нашли решение:

Существующая страница WP: /dashboard/password-reset-mail/?email=info@maximdegroote.be&uuid=96819e7d-c124-4610-9ae9-62ddb4adf678

Новый URL: /reset/info@maximdegroote.be/96819e7d-c124-4610-9ae9-62ddb4adf678/

functions.php

function rewriteurl() {
  global
  $wp,$wp_rewrite;
  $wp->add_query_var('email');
  $wp->add_query_var('uuid');
  $wp_rewrite->add_rule('^reset/([^/]*)/([^/]*)/?$', 'index.php?post_type=dashboard&page_id=1330&email=$matches[1]&uuid=$matches[2]', 'top');

  // Reset permalinks, delete after programming
  $wp_rewrite->flush_rules(false);  
}

thepage.php

$email = $wp->query_vars['email']; echo $email;
$uuid = $wp->query_vars['uuid']; echo $uuid; ?>
...