WordPress也有重写机制,最好使用它,而不是在.htaccess
文件
您可以向其中添加自己的重写规则。在您的情况下,我们要存储cat1
这是一个单独的查询变量的一部分,因此我们还需要告诉WordPress允许这个查询变量(为了安全起见,它使用了一个白名单)。
重写规则的精确形式取决于http://domain.com/news/
is:是带有自定义模板的页面还是其他页面?你应该发现这一点(使用我的Rewrite analyzer plugin 例如),并将其添加到重写规则中。
add_action( \'init\', \'wpse16819_init\' );
function wpse16819_init()
{
// Base form, will probably not work because it does nothing with the `news` part
add_rewrite_rule( \'news/([^/]+)/?$\', \'index.php?wpse16819_filter=$matches[1]\', \'top\' );
// Use this instead if `news` is a page
add_rewrite_rule( \'news/([^/]+)/?$\', \'index.php?wpse16819_filter=$matches[1]&pagename=news\', \'top\' );
}
add_filter( \'query_vars\', \'wpse16819_query_vars\' );
function wpse16819_query_vars( $query_vars )
{
$query_vars[] = \'wpse16819_filter\';
return $query_vars;
}
添加此代码后,请记住刷新重写规则(将其保存到数据库)。您可以通过访问管理区域中的Permalinks页面来完成此操作。
您现在可以访问wpse16819_filter
变量为get_query_var( \'wpse16819_filter\' );
.