Você pode usar a função get_query_var()
.
Assim:
$event_slug = get_query_var('event_slug');
Mais informações no Codex .
Tentando obter bons permalinks para um plug-in que exibe eventos
Eu tenho isso:
function my_add_rewrite_rules() {
global $wpdb;
$org_options = get_option('event_settings');
// get id for events page
$event_page_id = $org_options['event_page_id'];
$SQL = 'SELECT post_name FROM wp_posts WHERE ID = %d';
$event_page = $wpdb->get_var( $wpdb->prepare( $SQL, $event_page_id ));
add_rewrite_rule( $event_page . '/([^/]+)?/$', 'index.php?pagename=' . $event_page . '&event_slug=$matches[1]', 'top' );
add_rewrite_rule( $event_page . '/([^/]+)?$', 'index.php?pagename=' . $event_page . '&event_slug=$matches[1]', 'top' );
}
add_action( 'init', 'my_add_rewrite_rules' );
e isso:
function add_query_vars( $query_vars ) {
$query_vars[] = 'event_slug';
return $query_vars;
}
add_filter( 'query_vars', 'add_query_vars' );
as regras de reconfiguração são liberadas no administrador quando as opções 'event_settings' são atualizadas.
Estou usando um incrível plugin de Jan Fabry chamado "Monkeyman Rewrite Analyzer", que pode mostrar como suas regras de reescrita estão sendo processadas (confira, é ótimo).
Estes são os resultados dos itens acima:
Test URL
http://localhost/events/some-event
Pattern
events/([^/]+)?$
Substitution
pagename: events
event_slug: some-event
também parece funcionar com uma barra adicional:
Test URL
http://localhost/events/some-event/
Pattern
events/([^/]+)?/$
Substitution
pagename: events
event_slug: some-event
esses resultados parecem estar funcionando corretamente, mas quando eu insiro "http: // localhost / events / some-event" no meu navegador, ele não redireciona como deveria.
Os arrays $ _GET e $ _REQUEST resultantes estão vazios.
O que estou fazendo errado ???
Toda e qualquer ajuda é muito apreciada, mas as respostas corretas serão mais apreciadas; )
Obrigado
Você pode usar a função get_query_var()
.
Assim:
$event_slug = get_query_var('event_slug');
Mais informações no Codex .
Tags rewrite-rules