为什么自定义分类归档页面会将我重定向到一个帖子?

时间:2012-12-20 作者:Chris Schmitz

我有一个自定义分类法,即艺术家分类法,它与三种自定义帖子类型相关:视频、帖子和信件。我有一个taxonomy-artist.php 应显示给定艺术家的存档的模板。

当我访问时/artist/ARTIST_NAME 只有当没有其他帖子与之关联时,它才会显示分类法存档模板。如果有与之相关的帖子,你会被重定向到一个单独的帖子(我相信这是与分类术语相关联的最古老的帖子)。所以如果我访问/artist/ARTIST_NAME 而且还有与之相关的内容,我被踢出去[videos|letters|posts]/THE_POST_NAME.

我发现需要在自定义帖子类型之前注册分类法,所以我先注册分类法,并刷新了permalink设置,但运气不好。我很难理解为什么会发生这种情况,所以我很想知道是什么导致了这种情况!

下面是我用于注册分类法和帖子类型的代码:

register_taxonomy( \'artist\',
    array(
        \'videos\',
        \'letters\',
        \'post\'
    ),
    array(
        \'labels\' => array(
            \'name\' => _x( \'Artists\', \'taxonomy general name\' ),
            \'singular_name\' => _x( \'Artist\', \'taxonomy singular name\' ),
            \'search_items\' =>  __( \'Search Artists\' ),
            \'all_items\' => __( \'All Artists\' ),
            \'parent_item\' => __( \'Parent Artist\' ),
            \'parent_item_colon\' => __( \'Parent Artist:\' ),
            \'edit_item\' => __( \'Edit Artist\' ),
            \'update_item\' => __( \'Update Artist\' ),
            \'add_new_item\' => __( \'Add New Artist\' ),
            \'new_item_name\' => __( \'New Artist Name\' ),
            \'menu_name\' => __( \'Artists\' ),
        )
    )
);

register_post_type( \'letters\',
    array(
        \'labels\' => array(
            \'name\' => __( \'Letters\' ),
            \'singular_name\' => __( \'Letter\' )
        ),
        \'public\' => true,
        \'has_archive\' => true,
        \'supports\' => array( \'title\', \'editor\', \'thumbnail\' ),
        \'menu_icon\' => get_stylesheet_directory_uri() . \'/img/mail.png\',
    )
);

register_post_type( \'videos\',
    array(
        \'labels\' => array(
            \'name\' => __( \'Videos\' ),
            \'singular_name\' => __( \'Video\' )
        ),
        \'supports\' => array( \'title\', \'editor\', \'thumbnail\' ),
        \'public\' => true,
        \'menu_icon\' => get_stylesheet_directory_uri() . \'/img/blue-document-film.png\',
    )
);

2 个回复
SO网友:Chip Bennett

自定义分类的分类法存档索引页不使用archive-{taxonomy}.php, 而是使用taxonomy-{taxonomy}-{term}.php, 可追溯到taxonomy-{taxonomy}.php, 可追溯到taxonomy.php. Refer to the Template Hierarchy.

WordPress解释archive-{foobar}.phparchive-{post-type}.php, 并将使用该模板呈现foobar post-type. 那么,你的artist 分类法存档索引页永远不会使用archive-artist.php.

Try renaming the template file to taxonomy-artist.php.

SO网友:Chris Schmitz

终于弄明白了。事实证明,主题的原作者正在改写这一点。我的设置是正确的,我只需要删除覆盖。

结束

相关推荐

显示Archives.php中的所有自定义帖子类型

我该怎么做?archive.php 只有以下内容:wp_get_archives(\'type=monthly\'); 以及wp_get_archives() 没有显示所有帖子类型的参数。我也认为archive-[post_type].php 不是我要找的,因为我希望所有帖子类型都显示在一个归档页面中。谢谢W