对于父/子页面,自定义POST类型的分层固定链接的行为不符合预期

时间:2011-11-09 作者:Dan

当您有包含子级的页面时,permalink结构的工作原理如下:

实例com/父页/子页/

一切都很好。正在尝试转到此URL:

实例com/子页/

不起作用,这很好,正如预期的那样-我只希望我的子页面有一个URL。

然而,我已经设置了一个自定义的post类型,并将其设置为层次结构,以便其行为类似于页面。它的工作方式不同:

实例com/自定义帖子类型/父页/子页/

按预期工作,但从URL中删除父页:

实例com/自定义帖子类型/子页面/

还显示子页面。我想应该是404。

我使用了以下参数来注册\\u post\\u类型:

$args = array(
    \'labels\' => $labels,
    \'public\' => true,
    \'publicly_queryable\' => true,
    \'show_ui\' => true, 
    \'show_in_menu\' => true, 
    \'query_var\' => true,
    \'rewrite\' => array(\'slug\'=>\'custom-post-type\',\'with_front\'=>false),
    \'capability_type\' => \'post\',
    \'has_archive\' => false, 
    \'hierarchical\' => true,
    \'menu_position\' => null,
    \'supports\' => array(\'title\',\'editor\',\'thumbnail\',\'excerpt\',\'revisions\',\'page-attributes\')
); 
不过,我完全有可能误解了一些选项。有人能告诉我我做错了什么,或者这是一个bug还是一个特性吗?

我使用的是3.2.1,没有插件,只有我的自定义主题。

谢谢

2 个回复
SO网友:user23678

我通过这样做解决了这个问题的答案:

echo get_permalink( $page->ID );

这给了我正确的页面链接。

SO网友:David Gard

example.com/custom-post-type/parent-page-1/child-page/
example.com/custom-post-type/parent-page-2/child-page/
上述情况不可能发生。如果你给两页起相同的名字(不管他们的父母不同),那么WP会修改其中一页的鼻涕虫。

example.com/custom-post-type/parent-page-1/child-page/
example.com/custom-post-type/parent-page-2/child-page-1/
正在输入example.com/custom-post-type/child-page/example.com/custom-post-type/child-page-1/ 会像预期的那样工作,但我相信example.com/custom-post-type/parent-page-2/child-page/ 会将您重定向到example.com/custom-post-type/parent-page-1/child-page/ (尽管我并不是百分之百的支持)。

结束

相关推荐

Custom permalinks

我们有一个自定义类型music./music/ /music/post-name/ 此外,我们还有一个类似标签的分类法genres. 其URL为:/music-genres/genre-name/ 我尝试创建如下URL:/music/ /music/post-name/ /music/genres/ /music/genres/genre-name/ /music-genres/ 应替换为/music/genres/.最后,我们应该得到如下url