0

我有一个页面模板,它在 url 的末尾添加了一些变量,因此我可以根据传递的内容显示数据。

即:mysite.com/search-listins/listing/?address=123+The+Street&mls-number=00000

我需要把它转换成一个漂亮的永久链接。像这样的东西:

mysite.com/search-listings/listing/123-The-Street 或 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' );`
4

1 回答 1

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'); 中找到你的变量。

于 2013-01-29T17:08:29.823 回答