WordPress添加重写规则重定向,而不是“伪装”

时间:2019-05-14 23:04:05

标签: php wordpress polylang

我做了一个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

当前重定向:/ dashboard / password-reset-mail /(无GET变量)(这是page_id 1330)

谢谢

1 个答案:

答案 0 :(得分:0)

找到了解决方案:

现有WP页面:/ dashboard / password-reset-mail /?email=info@maximdegroote.be&uuid=96819e7d-c124-4610-9ae9-62ddb4adf678

新网址:/reset/info@maximdegroote.be/96819e7d-c124-4610-9ae9-62ddb4adf678 /

functions.php

    private async Task CreateChangeFeed<T>(DocumentCollectionInfo feedCollectionInfo, DocumentCollectionInfo leaseCollectionInfo, ChangeFeedProcessorOptions options) where T : Azure.Documents.ChangeFeedProcessor.FeedProcessing.IChangeFeedObserver
    {

        var processor = await new ChangeFeedProcessorBuilder()
               .WithHostName("CosmosDBDetectorHost")
               .WithFeedCollection(feedCollectionInfo)
               .WithLeaseCollection(leaseCollectionInfo)
               .WithProcessorOptions(new ChangeFeedProcessorOptions()
               {
                   FeedPollDelay = new TimeSpan(0, ChangeFeedOptionsConstants.MinutesInterval, 0),
                   MaxItemCount = ChangeFeedOptionsConstants.MaxItemCount,
               })
               .WithObserver<T>()
               .BuildAsync();
    }

thepage.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);  
}