我在为我正在制作的主题重写url时遇到了一个问题,这基本上是一个基于根主题的画廊主题。以下是网站导航的工作原理:
主页(带平铺图像库)(图像链接到父页)当前URL-domain.com
父页(带平铺图像库)(图像链接到附件页以及#id链接到单击的图像)。当前URL-domain.com/landscapes
附件页(将所有全尺寸图像附加到父帖子)。当前URL-domain.com/landscapes/image-title/#id
我想做的是从附件页URL中删除图像标题,并将其替换为gallery,以便URL显示
domain.com/landscapes/gallery/#id
我的内容图像。php使用wp_get_attachment_image_src()
获取图像URL。禁用了pretty permalinks后,我会得到一个图像URL,如domain.com/index.php?attachment_id=205
当使用重写规则检查器插件检查pretty URL时,该URL(domain.com/landscapes/image-title/#id
) 获取2个匹配项,如下所示:
规则1:(.?.+?)(/[0-9]+)?/?$
重写1:index.php?pagename=$matches[1]&page=$matches[2]
规则2:[^/]+/([^/]+)/?$
重写2:index.php?attachment=$matches[1]
据我所知,第二条规则是在本案中应用的规则,但我不知道该改成什么。你知道怎么做吗?
最合适的回答,由SO网友:darthrax 整理而成
好的,我找到了答案。我按照https://wordpress.stackexchange.com/a/56426/37472 并更改了\'series\'
到\'gallery\'
.
它添加了所需的重写规则来解析如下链接domain.com/landscapes/gallery/123/
到index.php?attachment_id=123
.
我的假设是wordpress将显示由get_permalink()
在domain.com/landscapes/gallery/123/
总体安排事实并非如此。然而,我在gallery脚本中使用了一个简单的解决方法,以所需的格式生成锚定链接,这与主页、子页和父/其他页不同。脚本使用同位素和延迟加载加载库http://pastie.org/8294032.
对于不同的页面格式,我修改了my_rewrite_rules_array( $rules )
功能如下:
function my_rewrite_rules_array( $rules ) {
$my_rules = array();
$my_rules[\'gallery/(\\d+)/?$\'] = \'index.php?attachment_id=$matches[1]\';
$my_rules[\'(\\w+)/gallery/(\\d+)/?$\'] = \'index.php?attachment_id=$matches[2]\';
$my_rules[\'(\\w+)/(\\w+)/gallery/(\\d+)/?$\'] = \'index.php?attachment_id=$matches[3]\';
return $my_rules + $rules;
}