分层定制帖子类型404s上的子页

时间:2012-05-09 作者:lepardman

我最近一直在使用自定义帖子类型,没有遇到任何重大问题。这次我在尝试新的东西。我想创建一个CPT,它基本上像页面一样工作,具有页面层次结构。

真正的东西是用瑞典语写的,所以我将以“书”为例来说明我希望它是如何工作的。

因此,我首先创建我的新帖子类型:

define(\'BOOKS_HTTP_PATH\', WP_PLUGIN_URL . \'/\' . str_replace(basename(__FILE__), "", plugin_basename(__FILE__)));
function add_custom_post_type_books() {
    register_post_type( \'lpm-books\', array( 
        \'labels\' => array( 
            \'name\' => \'Books\',
            \'singular_name\' => \'Book\',
            \'add_new\' => \'New book\',
            \'add_new_item\' => \'Add new book\',
            \'not_found\' => \'No books found\' ),
        \'public\' => true, 
        \'show_ui\' => true,
        \'show_in_nav_menus\' => true,
        \'menu_icon\' => BOOKS_HTTP_PATH . \'images/books-icon.png\',
        \'menu_position\' => 20,
        \'hierarchical\' => true,
        \'rewrite\' => array( \'slug\' => \'books\'),
        \'capability_type\' => \'page\',
        \'supports\' => array(\'title\',\'editor\',\'page-attributes\'),
        \'query_var\' => \'\',
        \'_builtin\' => false,
        ) 
    );
}
add_action( \'init\', \'add_custom_post_type_books\' );
在我的例子中,我对CPT有一个特定的名称,lpm books(在这个例子中可能听起来很奇怪,但正如我前面所说的,我是用瑞典语写的,但如果可能的话,我希望帖子类型的名称是英语)。我为我的永久链接将重写段设置为books,然后添加\'hierarchical\' => true\'supports\' => \'page-attributes\' 使属性元框可用。

在Admin->Books中,视图如下所示:

第1册第1章第2章第2册第1章第2章http://www.example.com/my-books/. 在那一页上,我列出了我所有新增的书籍及其章节。

如果我点击Book 1(或Book 2),效果会非常好。url为http://www.example.com/books/book-1/. 但如果我想查看章节(url:http://www.example.com/books/book-1/chapter-1) 我得了404分。

我的permalink结构是:/%category%/%postname%/

我真的不明白为什么自定义子页(帖子)是404。因为我的常规起始页“我的书”slug与CPT名称或重写slug都没有冲突,我想我已经完全没有想法了。

注意:我还尝试删除\'rewrite\' => array( \'slug\' => \'books\') 但我在“儿童贴子”上仍然得到404分。

你们在创建层次化CPT时是怎么做的?我能做到这一点吗?还是我需要重新考虑结构?

非常感谢。

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

好吧,再过几个小时,我把\'query_var\' => \'\', 并重新保存/刷新我的永久链接设置。Query\\u var默认为true,并且可以正常工作。编码盲症之类的。希望这能帮助别人。

结束

相关推荐

Taxonomy filter all children

我有一个自定义分类过滤器,它将过滤选定分类中的所有页面。我希望代码能够选择该分类法中的页面,以及千页的子页面。这是密码。add_action(\'restrict_manage_posts\', \'restrict_manage_posts_section\'); function restrict_manage_posts_section() { global $post_type; if ( is_object_in_taxonomy( $post_t