我有一个页面设置,其永久链接为mydomain.com/events
,该页面使用页面模板。此页面显示了我从外部来源提取的所有事件(因此不能是自定义帖子类型)。然后,我进行了设置重写,以处理url的categorys参数,然后处理单个事件。
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
,它将直接将我重定向到首页。但是,如果我使用重写URL,则mydomain.com/events/categories/film
会进入404。我在这里哪里出错了?
谢谢!
答案 0 :(得分:1)
所以我缺少正确的正则表达式和页面
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'
);