我正在为自定义项目添加rewrite_rules。
我能够让它们在某种程度上起作用,但有一些困难。
这是我到目前为止所尝试的内容
public function add_query_vars($vars) {
$vars[] = 'gallery';
$vars[] = 'project';
$vars[] = 'palbum';
return $vars;
}
public function add_endpoint() {
add_rewrite_rule('^gallery/([^/]*)/([^/]*)?','index.php?gallery=true&project=$matches[1]&palbum=$matches[2]','top');
}
这里的项目是父母和palbum都是它的孩子。
它似乎在mysite.com/gallery/my-project-name/my-album-name
正常工作
(这些页面是显示单张专辑)
但它在mysite.com/gallery/my-project-name
给出了404错误
(这些页面用于显示项目所属的所有专辑)
有什么线索?
答案 0 :(得分:0)
根据您的重写规则,需要用于项目和palbum的部分才能应用重写规则。如果您稍微修改规则,它将与您要查找的内容相匹配:
public function add_endpoint() {
/**
*
* Matches:
* http://example.com/gallery/my-project-name/my-album-name/
* http://example.com/gallery/my-project-name/my-album-name
* http://example.com/gallery/my-project-name/
* http://example.com/gallery/my-project-name
*/
add_rewrite_rule('^gallery/([^/]+)/?(.*?)/?$','index.php?gallery=true&project=$matches[1]&palbum=$matches[2]','top');
}
创建一个测试以针对您要检查的任何其他迭代运行 - https://www.regex101.com/r/f54odP/1