Page-CPT.php重定向到存档或Single.php

时间:2014-02-07 作者:EHerman

我已经设置了一个名为cpt\\u top\\u ten\\u list的自定义帖子类型。我正在尝试设置一个页面来显示所有自定义帖子类型。

我把我的新页面命名为前十页。并在页面顶部添加了一个模板标记。在仪表板中创建了一个名为“前十名列表”的页面,并将该页面分配给了我的新模板。

现在,当我转到页面时,它似乎会将我重定向到自定义帖子类型的归档页面。如果我关闭cpt的存档功能,它会将我重定向到第页。php。

如果我添加flush_rewrite_rules(); 转换为函数。php,我的新自定义页面可以工作,但其他页面都不能工作。当我取出flush_rewrite_rules(); 除了我的cpt之外,所有的页面都可以工作。

我尝试通过进入页面并重新保存我的设置来刷新我的永久链接设置。

我对这里发生的事感到困惑。为什么我的cpt页面不被认可?这很奇怪。

function register_top_10_list_custom_post_type() {
        // All the labels
        $names  = array(
            \'name\' => \'Top 10 List\',
            \'singular_name\' => \'Top 10 List\',
            \'add_new\' => \'Add New List\',
            \'add_new_item\' => \'Add New List\',
            \'edit_item\' => \'Edit List\',
            \'new_item\' => \'New List\',
            \'all_items\' => \'All Lists\',
            \'view_item\' => \'View List\',
            \'search_items\' => \'Search Lists\',
            \'not_found\' =>  \'No lists found\',
            \'not_found_in_trash\' => \'No lists found in Trash\', 
            \'parent_item_colon\' => \'\',
            \'menu_name\' => \'Top 10 Lists\'
          );
        //CPT\'s paramters
        $args = array(
            \'labels\' => $names,
            \'public\' => true, 
            \'publicly_queryable\' => true,
            \'show_ui\' => true, 
            \'show_in_menu\' => true, 
            \'query_var\' => true,
            \'menu_icon\' => get_stylesheet_directory_uri() . \'/inc/cpt/images/top-10-icon.png\', /* the icon for the custom post type menu */
            \'capability_type\' => \'post\',

            \'has_archive\' => true, 
            \'hierarchical\' => false,
            \'menu_position\' => null,
            \'taxonomies\' => array(\'category\', \'post_tag\'),
            \'supports\' => array( \'title\', \'editor\', \'author\', \'thumbnail\', \'excerpt\', \'comments\' )
        ); 
    //register CPT
    register_post_type( \'cpt_top_ten_list\', $args );
}
//initiate CPT
add_action( \'init\', \'register_top_10_list_custom_post_type\' );

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

你的代码和名字中都没有这个template hierachy 似乎是错的。

第cpt页。php与页面模板相关,而不是CPT归档。

\'rewrite\'      => array( \'slug\' => \'top-ten-list\', \'with_front\' => false ),
假设你使用slug前十名列表

您应该将归档模板命名为归档前十名列表。php

你应该把你的CPT模板命名为前十名。php

Here\'s an example 在所有经过测试和运行的正确代码中,您可以将其用作指南

无需添加flush\\u rewrite\\u rules();因为您可以简单地重新保存永久链接。

您也可以使用虚线图标,而不是为菜单图标添加图像。

您还可以考虑添加自定义分类类型,使您能够为CPT创建类别。

结束

相关推荐