我正在为WordPress编写一个基本的图库插件。在插件中,用户可以将图像标记为收藏夹,并且有一个页面,用户可以在其中查看自己的收藏夹。
我想为库(domain.com/page/gallery/gallery-name)设置一些重写规则,而不是查询字符串变量(domain.com/page/?gallery=gallery-name)
在我的插件设置中,用户可以为插件选择一个页面。我存储页面ID,并希望将其用作库中所有内容的基础。
URL示例如下:
域。com/page-这将显示所有库域的列表。com/page/gallery/gallery name-包含缩略图的库页面。com/page/gallery/gallery-name/2-分页的域。com/page/image/image name-包含各种详细信息的单个图像。com/page/favorites-列出标记为收藏夹的图像时,add\\u rewrite\\u规则的内容让我完全困惑,我什么都做不到。我正在使用flush\\u rewrite\\u rules(),我知道在尝试设置自定义重写规则时,这是一个常见的错误。
编辑:我取得了进步,以下是我迄今为止取得的成绩:
$home = get_post($home_id);
// Gallery
add_rewrite_rule($home->post_name."/gallery/([^/]+)/page/?([0-9]{1,})/?$",\'index.php?p=4&sunshine_gallery=$matches[1]&paged=$matches[2]\',\'top\');
add_rewrite_rule($home->post_name."/gallery/([^/]+)/?$",\'index.php?p=4&sunshine_gallery=$matches[1]\',\'top\');
add_rewrite_rule($home->post_name."/gallery/([^/]+)/?$",\'index.php?pagename=\'.$home->post_name.\'&sunshine_gallery=$matches[1]\',\'top\');
// Image
add_rewrite_rule($home->post_name."/image/([^/]+)/?$",\'index.php?pagename=\'.$home->post_name.\'&sunshine_image=$matches[1]\',\'top\');
但是,分页规则无法捕获,“paged”变量始终为0。
最合适的回答,由SO网友:sccr410 整理而成
我终于在这里找到了我的重写规则:
$home = get_post(Sunshine::$options[\'page\']);
// Gallery
add_rewrite_rule($home->post_name."/gallery/([^/]+)/page/?([0-9]{1,})/?$",\'index.php?pagename=\'.$home->post_name.\'&sunshine_gallery=$matches[1]&paged=$matches[2]\',\'top\');
add_rewrite_rule($home->post_name."/gallery/([^/]+)/?$",\'index.php?p=\'.$home->post_name.\'&sunshine_gallery=$matches[1]\',\'top\');
add_rewrite_rule($home->post_name."/gallery/([^/]+)/?$",\'index.php?pagename=\'.$home->post_name.\'&sunshine_gallery=$matches[1]\',\'top\');
// Image
add_rewrite_rule($home->post_name."/image/([^/]+)/?$",\'index.php?pagename=\'.$home->post_name.\'&sunshine_image=$matches[1]\',\'top\');