Reescrita personalizada com Query vars

Fiquei preso nisso por horas e tentei todos esses methods diferentes, mas nenhum parece funcionar. Eu vi outros tópicos com um problema semelhante, mas as soluções não funcionam para mim. Espero que alguém possa ajudar.

Eu tenho uma página com um modelo personalizado usando o permalink

example.com/central 

Esta página aceita variables ​​de consulta, por exemplo:

 example.com/central/?information=people 

Estou tentando obter uma regra de reescrita personalizada para que, quando as pessoas digitarem

 example.com/central/information/people 

exibirá o que

 example.com/central/?information=people 

faz.

atualmente no meu template functions.php eu tenho

 function add_query_vars_filter( $vars ){ $vars[] = "information"; return $vars; } add_filter( 'query_vars', 'add_query_vars_filter' ); function custom_rewrite_tag() { add_rewrite_tag('%information%', '([^&]+)'); } add_action('init', 'custom_rewrite_tag', 10, 0); function custom_rewrite() { add_rewrite_rule('^(.+)/information/(.+)/?$','index.php?p=64476&information=$matches[2]','top'); } add_action('init', 'custom_rewrite'); 

Quando eu visitar

 example.com/central/information/people 

Eu só fui levado para

 example.com/central/ 

Minha segunda questão é que p = 64476 está codificado, como faço para obter o id de $ matches [1]?

Solutions Collecting From Web of "Reescrita personalizada com Query vars"

Adicione um ponto final de reescrita em vez de uma regra de reescrita e uma var. Consulta. Esta function API fará ambas as coisas para você.

 function wpd_add_my_endpoint(){ add_rewrite_endpoint( 'information', EP_PAGES ); } add_action( 'init', 'wpd_add_my_endpoint' ); 

Agora, qualquer página pode ter information anexadas ao final e o valor estará disponível via get_query_var('information') .

Tente isso, fiz um teste rápido e funcionou para mim. Eu criei uma página chamada central .

Não esqueça de liberar as regras de reescrita depois de inserir este código.

 add_filter( 'query_vars', 'query_vars' ); function query_vars( $vars ) { array_push($vars, 'information'); return $vars; } add_action( 'rewrite_rules_array', 'rewrite_rules' ); function rewrite_rules( $rules ) { $newrules = array(); $newrules[ 'central/information/people/?$' ] = 'index.php?pagename=central&information=people'; return $newrules + $rules; }