我有一个页面模板,可以将一些变量添加到url的末尾,这样我就可以根据传递的内容显示数据。
ie:mysite.com/search-listins/listing/?address=123+The+Street&mls-number=00000
我需要将其转换为非常固定的链接。像这样的事情:
mysite.com/search-listings/listing/123-The-Street OR mysite.com/search-listings/listing/00000-123-The-Street
我尝试过使用这个功能。但似乎没有任何效果。有什么想法吗?这些不是来自自定义帖子类型。如您所见,这些不是自定义帖子类型。这些是位于wp_表之外的MLS项目。
功能:
function setup_filter_rewrites(){
add_rewrite_rule('search-listings/listing/([^/]*)/?', 'index.php?pagename=search- listings/listing/?address=$matches[1]&mls-number=$matches[2]', 'top');
}
add_action( 'init', 'setup_filter_rewrites' );
function setup_filter_query_vars( $query_vars ){
$query_vars[] = 'listing';
return $query_vars;
}
add_filter( 'query_vars', 'setup_filter_query_vars' );`
答案 0 :(得分:0)
我总是使用此代码而不是add_rewrite_rule()函数:
add_filter( 'query_vars', 'my_query_vars' );
function dlouhavidea_query_vars( $vars ) {
$vars[] = 'address';
$vars[] = 'miles';
return $vars;
}
add_action( 'generate_rewrite_rules', 'my_rewrite_rules' );
function ,y_rewrite_rules( $wp_rewrite )
{
$wp_rewrite->rules = array(
'search-listings/listing/address/?([^/]*)/?$' => $wp_rewrite->index . '?pagename=search-listings&address=' . $wp_rewrite->preg_index( 1 ),
'search-listings/listing/miles/?([0-9]{1,})/?$' => $wp_rewrite->index . '?pagename=search-listings&miles=' . $wp_rewrite->preg_index( 1 )
) + $wp_rewrite->rules;
}
你将在get_query_var('address')和get_query_var('miles')中找到你的变种;