为什么ADD_REWRITE_ENDPOINT与/%CATEGORY%/%POSTNAME%/固定链接结构不兼容?

时间:2013-09-20 作者:Firsh - justifiedgrid.com

我添加了一个myvar/myvalue 将端点重写为EP_ALL 可以将其添加到WP安装的任何URL,WP插件将对其进行操作。这部分很酷,但当permalink结构/%category%/%postname%/. 它适用于所有内置的可选结构。可能还有其他不适用的结构。

Doesn\'t work = 404 error.

路径如下所示:/mycategory/mypost/myvar/myvalue

我得到了重写分析器插件,它告诉我它被解释为(按顺序排列,前4位):

不是这样的。。。(以黄色突出显示)

(.?.+?)/myvar(/(.*))?/?$
页面名:mycategory/mypost
myvar:myvalue

显然这已经用过了,但还是很冷。。。

.?.+?/([^/]+)/myvar(/(.*))?/?$
附件:mypost
myvar:/myvalue

明显错误。。。

(.?.+?)(/[0-9]+)?/?$
页面名称:mycategory/mypost/myvar
页面:/myvalue

<小时>

This is it, but it fails to realize it!

(.+?)/([^/]+)/myvar(/(.*))?/?$
类别\\u名称:mycategory
名称:mypost
myvar:myvalue

我正在输出global $query_string; 这告诉我这是attachment=mypost&myvar=%2Fmyvalue (顺便说一下,它不应该包括%2f斜杠)。

那么,如果这是WP中的一个bug,有人能告诉我吗?或者我能做些什么吗?

我的想法大致是这样的if ( \'/%category%/%postname%/\' == $wp_rewrite->permalink_structure ){ ... }
并手动告诉WP类别和名称并显示该内容。但我不知道怎么回事... 我应该把它挂在什么上面呢。

1 个回复
最合适的回答,由SO网友:Milo 整理而成

为什么不起作用?我不确定。这种特定模式与父/子页面请求相同,WordPress必须进行一些额外的查询,以确定是否存在以该名称命名的帖子,或者它是否是一个页面。为什么在添加端点时会出现这种情况,我还没有深入研究代码来确定。

你怎样才能让它工作?如果您不使用EP_ALL 掩码,而是对所有单个掩码使用OR运算符,它将以这样一种方式构建规则,使这些端点能够正确解析。

例如:

function wpa_myvar_endpoint(){
    add_rewrite_endpoint( \'myvar\', EP_PERMALINK | EP_PAGES );
}
add_action( \'init\', \'wpa_myvar_endpoint\' );

结束

相关推荐

wordpress permalinks tweeks

在创建任何帖子后,我都会遵循permalink结构。。。http://domain.com/wp/postname根据Permalink设置。。。。职位名称:http://domain.com/wp/sample-post/这个永久链接对于页面来说很好,但我如何才能像下面这样添加blog作为前缀。。。。http://domain.com/wp/blog/文章标题http://domain.com/wp/blog/类别/职位名称如果你需要更多信息,请告诉我,谢谢。