Rewrite ugly URL to clean URL

时间:2012-05-14 作者:Patrick

我正在尝试从:

http://www.example.com/product?level1=value1&level2=value2&level3=value3&level4=value4
收件人:

http://www.example.com/product/value1/value2/value3/value4
有时并非所有值都已设置,因此它还需要仅设置2个值:

http://www.example.com/product/value1/value2
Thehttp://www.example.com/product/ 页面使用自己的模板文件。

我的代码是这样的:

function my_rewrite_rules( $wp_rewrite ) {
    $wp_rewrite->rules =
    array_merge( array(
        \'^product/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$\' =>
        \'index.php?level1=$matches[1]&level2=$matches[2]&level3=$matches[3]&level4=$matches[4]\'
    ), $wp_rewrite->rules);
}

add_filter( \'generate_rewrite_rules\', \'my_rewrite_rules\' );

function my_rewrite_queryvars( $qvars ) {
    $qvars[] = \'level1\';
    $qvars[] = \'level2\';
    $qvars[] = \'level3\';
    $qvars[] = \'level4\';
    return $qvars;
}

add_filter( \'query_vars\', \'my_rewrite_queryvars\' );
当我尝试获取query\\u vars时,它可以工作,但它也给了我一个404页面,而不是正确的模板。

我做错了什么?

1 个回复
SO网友:Patrick

好吧,我找到了解决办法。

首先,我需要选择id。尝试使用p=id,但它总是返回没有参数的页面。我所需要做的就是添加page\\u id=id。

我还需要为每个新级别添加重写。

结束

相关推荐