Image Attachment Url Rewrite

时间:2013-09-02 作者:darthrax

我在为我正在制作的主题重写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]

    据我所知,第二条规则是在本案中应用的规则,但我不知道该改成什么。你知道怎么做吗?

    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;
    }
    

    结束

    相关推荐

    如何在使用WP_USE_THEMES=FALSE时显示管理栏?

    因此,我以“无主题”的方式使用WordPress,即不使用“博客”模板。我的站点文件位于根目录中(不在主题文件夹中),WordPress安装在自己的目录中/wordpress/ 目录“我的主题”存在的唯一目的是定制后端,包括重新标记和自定义帖子类型。(我基本上不使用插件和小部件,而是定制WordPress的实现)通过这种设置,当我的客户像往常一样查看前端页面时,有没有办法让管理栏显示出来?注意:我已尝试添加wp_head() 和wp_footer() 无济于事。我想这可能与我的自定义文件结构有关。