自定义帖子类型正在使用index.php模板

时间:2017-05-25 作者:Daniele Squalo

Here 我读到,如果我创建一个自定义的帖子类型,Wordpress将首先查看它的特定模板,然后返回到single。php。

我注册了一个自定义的post类型(我还将显示分类法),它在admin中正确显示;我可以很好地创建它们,并且可以将它们添加到博客主页的帖子列表中。然而,当我尝试访问它的页面时,并没有收到404错误,但标题并没有显示在标题部分,它使用了索引。php模板,虽然我有一个。php,这是与常见的职位,我想使用。我的新类型(在functions.php中)

function mytheme_customtypes () {
    $post_args = array(
        \'label\' => _(\'Blog Post\'),
        \'description\' => _(\'Site\\\'s blog posts\'),
        \'show_ui\' => true,
        \'show_in_nav_menus\' => true,
        \'taxonomies\' => array(\'blog_posts\'),
        \'supports\' => array(\'title\', \'editor\', \'comments\', \'trackbacks\', \'thumbnail\'),
        \'capability_type\' => \'post\',
        \'rewrite\' => array(\'slug\' => \'blog\', \'has_archive\' => \'blog_posts\', \'with_front\' => false)
    );

    $tax_args = array(
        \'label\' => \'Blog posts\',
        \'description\' => _(\'Raccolta dei post per il blog\'),
        \'show_ui\' => true,
        \'show_in_nav_menus\' => true,
        \'rewrite\' => array(\'slug\' => \'blogs\',  \'with_front\' => false),
        \'hierarchical\' => true
    );

    register_post_type(\'blog_post\', $post_args);

    register_taxonomy(\'blog_posts\', \'blog_post\', $tax_args);
}
add_action(\'init\', \'mytheme_customtypes\');
正在尝试创建新模板名称single-blog\\u post。php没有任何效果。非常感谢您的帮助

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

publicfalse 默认情况下,如果未将帖子类型显式设置为true.

$post_args = array(
    \'public\' => true,
    \'label\' => _(\'Blog Post\'),
    \'description\' => _(\'Site\\\'s blog posts\'),
    \'show_ui\' => true,
    \'show_in_nav_menus\' => true,
    \'taxonomies\' => array(\'blog_posts\'),
    \'supports\' => array(\'title\', \'editor\', \'comments\', \'trackbacks\', \'thumbnail\'),
    \'capability_type\' => \'post\',
    \'rewrite\' => array(\'slug\' => \'blog\', \'has_archive\' => \'blog_posts\', \'with_front\' => false)
);

SO网友:Rarst

我不确定我是否完全理解了你的问题(关于将它们“添加”到博客的部分)。然而,从您的描述来看,我认为您缺少归档模板和单一模板之间的区别。

index.php 是catch–all模板,它是归档和层次结构的单个分支的最后一个回退。

但在此之前,逻辑大致不同:

  • archive-blog_post.php > archive.php > index.php 用于存档single-blog_post.php > single.php > index.php 对于单数,如果您正在查看CPT的存档,那么您拥有的任何单数模板都是不相关的。还有其他方面。

    如果要自定义CPT的存档和单数条目,则需要为CPT创建两个模板。

结束

相关推荐

Custom templates folder

我创建了一个自定义文件夹(“/模板”),并将所有模板文件放在该文件夹中。而不是root(“/wp-content/themes/my-theme/”)。它工作得很好。我是否必须添加一些功能来指示“/模板/”文件夹作为我的模板文件夹?通常你把它们放在根上,对吗?现在一切正常,但我只是想知道是否有什么我必须做的。我找不到有关wordpress codex的任何信息。我刚刚安装了WPML,现在所有的模板页面都是404。我想知道它(自定义模板文件夹位置)是否会导致404页。因为吴宇森的商业页面显示良好。wc不在我