wordpress重写的路由不正确
Incorrect routing with wordpress rewrite
我有一个页面设置,其永久链接为 mydomain.com/events
,它使用页面模板。此页面显示我从外部来源获取的所有事件(因此不能是自定义 post 类型)。然后我设置了重写来处理 url 的类别参数,然后是单个事件。
add_action('init', 'mydomain_events_rewrite');
function mydomain_events_rewrite()
{
add_rewrite_rule(
'^events/categories/?$',
'index.php?category=$matches[1]',
'top'
);
add_rewrite_rule(
'^events/?$',
'index.php?event=$matches[1]',
'top'
);
}
add_filter('query_vars', 'mydomain_events_rewrite_var');
function mydomain_events_rewrite_var($vars)
{
$vars[] = 'events';
$vars[] = 'categories';
return $vars;
}
所以我们的想法是类别只向事件页面提供类别变量,例如 mydomain.com/events/categories/film
。然后个别事件将是 mydomain.com/events/123/my-epic-film
.
就目前而言,如果我转到 mydomain.com/events
,它只会将我重定向到主页。但是,如果我使用重写 urls,mydomain.com/events/categories/film
它会转到 404。我哪里出错了?
谢谢!
所以我缺少正确的正则表达式和页面
add_rewrite_rule(
'^events/category/([^/]*)/?',
'index.php?pagename=events&category=$matches[1]',
'top'
);
add_rewrite_rule(
'^events/([^/]*)?',
'index.php?pagename=events&event=$matches[1]',
'top'
);
我有一个页面设置,其永久链接为 mydomain.com/events
,它使用页面模板。此页面显示我从外部来源获取的所有事件(因此不能是自定义 post 类型)。然后我设置了重写来处理 url 的类别参数,然后是单个事件。
add_action('init', 'mydomain_events_rewrite');
function mydomain_events_rewrite()
{
add_rewrite_rule(
'^events/categories/?$',
'index.php?category=$matches[1]',
'top'
);
add_rewrite_rule(
'^events/?$',
'index.php?event=$matches[1]',
'top'
);
}
add_filter('query_vars', 'mydomain_events_rewrite_var');
function mydomain_events_rewrite_var($vars)
{
$vars[] = 'events';
$vars[] = 'categories';
return $vars;
}
所以我们的想法是类别只向事件页面提供类别变量,例如 mydomain.com/events/categories/film
。然后个别事件将是 mydomain.com/events/123/my-epic-film
.
就目前而言,如果我转到 mydomain.com/events
,它只会将我重定向到主页。但是,如果我使用重写 urls,mydomain.com/events/categories/film
它会转到 404。我哪里出错了?
谢谢!
所以我缺少正确的正则表达式和页面
add_rewrite_rule(
'^events/category/([^/]*)/?',
'index.php?pagename=events&category=$matches[1]',
'top'
);
add_rewrite_rule(
'^events/([^/]*)?',
'index.php?pagename=events&event=$matches[1]',
'top'
);