I really want to figure this out.
What I want to do, is this URI
http://www.hotels-lithuania.net/index.php?page=76&type=hotels&id=1
transform to
http://www.hotels-lithuania.net/item/hotels/1
Actually I have read tons of pages, what I come to is this:
add_action( 'init', 'wpa5413_init' );
function wpa5413_init()
{
add_rewrite_rule(
'item/([^/]+)/([^/]+)?',
'index.php?page=76&type=$matches[1]&id=$matches[2]',
'top' );
}
add_filter( 'query_vars', 'wpa5413_query_vars' );
function wpa5413_query_vars( $query_vars )
{
$query_vars[] = 'type';
$query_vars[] = 'id';
return $query_vars;
}
If I enter hotels-lithuania.net/item/hotels/1
to my browser it cuts to hotels-lithuania.net/item/
and of course no items displayed.
Screen from rewrite analyzer plugin: https://i.sstatic.net/AgNoq.png
EDIT:
I dont know why, but I had guid in my db with value localhost/hotel/?page_id=76
So my final rewrite_rule looks like this:
add_action( 'init', 'wpa5413_init' );
function wpa5413_init()
{
add_rewrite_rule(
'item/([^/]+)/([^/]+)?',
'index.php?page_id=76&itemType=$matches[1]&itemId=$matches[2]',
'top' );
}
add_filter( 'query_vars', 'wpa5413_query_vars' );
function wpa5413_query_vars( $query_vars )
{
$query_vars[] = 'itemType';
$query_vars[] = 'itemId';
return $query_vars;
}
And using these variables with:
global $wp;
$type = $wp->query_vars['itemType'];
$id = $wp->query_vars['itemId'];