自定义发布类型档案模板

时间:2012-06-21 作者:Godforever

我也有类似的问题:Custom Post Type Template - Archive

我有一个WordPress自定义帖子类型,名为coupon. 我尝试使用archive-coupon.php, 但它直接指向home.php.

我还有一个定制的CPT分类法,名为tags 使用rewrite rule => "tag"所以当我访问这样的URL时-http://mysite.com/tag/3d 我想查看自定义帖子类型的自定义模板或分类法的常规模板。

我也试过了taxonomy.php 但它仍然忽略它。有什么问题吗?

更新-

我不知道到底发生了什么。但在此之前,我有一个名为分类存储的模板。php。所以,当我把它改名为“分类法”时tag 已开始使用taxonomy.php 模板文件。而且还是archive-coupon.php 不起作用。

3 个回复
SO网友:Brad Dalton

我认为应该添加对自定义分类法类型的支持,并将文件命名为分类法cpt类型。php,其中cpt是自定义帖子类型的名称。

您的CPT归档文件应命名为archive CPT。php,其中cpt是自定义帖子类型的名称。

下面是所有经过测试的代码。

Note: 您不应该使用一个或多个标记作为自定义分类法类型的名称,因为它将与现有的核心函数冲突。

add_action( \'init\', \'wpsites_cpt_post_type\' );
function wpsites_cpt_post_type() {

register_post_type( \'cpt\',
    array(
        \'labels\' => array(
            \'name\'          => __( \'CPT\', \'theme\' ),
            \'singular_name\' => __( \'CPT\', \'theme\' ),
        ),
        \'has_archive\'  => true,
        \'hierarchical\' => true,
        \'menu_icon\'    => true,
        \'public\'       => true,
        \'rewrite\'      => array( \'slug\' => \'cpt\', \'with_front\' => false ),
        \'supports\'     => array( \'title\', \'editor\', \'author\', \'thumbnail\', \'excerpt\', \'trackbacks\', \'custom-fields\', \'revisions\', \'page-attributes\' ),
        \'taxonomies\'   => array( \'cpt-type\' ),

    ));

}
这是为了注册一个分类类型页面,您可以在其中创建无限的税类型。

add_action( \'init\', \'wpsites_register_taxonomy_types\' );
function wpsites_register_taxonomy_types() {

register_taxonomy( \'cpt-type\', \'cpt\',
    array(
        \'labels\' => array(
            \'name\'          => _x( \'Types\', \'taxonomy general name\', \'theme\' ),
            \'add_new_item\'  => __( \'Add New CPT Type\', \'theme\' ),
            \'new_item_name\' => __( \'New CPT Type\', \'theme\' ),
        ),
        \'exclude_from_search\' => true,
        \'has_archive\'         => true,
        \'hierarchical\'        => true,
        \'rewrite\'             => array( \'slug\' => \'cpt-type\', \'with_front\' => false ),
        \'show_ui\'             => true,
        \'show_tagcloud\'       => false,
    ));

}
用自定义帖子类型的名称替换所有cpt实例,然后重新保存永久链接设置。

否则,分类法cpt类型中的代码可能有问题。php文件。

SO网友:Sisir

我相信tag 是wordpress上的保留分类法重写名称,将在默认情况下使用post_tag 分类学这可能会导致问题。将自定义分类重命名为coupon-tag.

顺便问一下:您是否尝试通过访问设置选项卡中的永久链接页面刷新重写?

SO网友:Matthew Boynes

首先,让我们确保您了解template hierarchy. 对于名为coupon 具有\'has_archive\' => true 和一个名为coupon-tag (按照@Sisir的建议)都将公开,

优惠券/将使用存档优惠券。php,存档。php或索引。php,以该顺序为准,将使用分类优惠券标记foo。php,分类优惠券标签。php,分类法。php,存档。php或索引。php,以该顺序中最先找到的为准。Note that archive-coupon.php is not in this list (这是一个常见的错误)tag 是一个特殊的词,您将遇到重写冲突,使用它作为您的slug。你应该用别的东西。

最后,刷新您的重写在这里非常重要,您需要记住在对任何相关代码进行任何更改(对CPT或分类法进行任何更改)后进行刷新。最简单的方法是Settings → Permalinks and click "Save Changes".

结束

相关推荐

get_the_terms issue

我试图列出附加到相关帖子的自定义分类术语(这是一种自定义帖子类型)。我想把它列出来,而不是一个链接,它实际上是一个标题。我试过了,但显然不行。我做错了什么?function woocommerce_output_product_brand() { $terms = get_the_terms( $post->ID, \'brand\' ); foreach($terms as $term){ echo $term; } } 提前感谢!