定制POST_TYPE的单页模板

时间:2014-03-07 作者:emersonthis

我使用以下代码注册了自定义帖子类型:

#Register custom post type for Stars of the Month
add_action( \'init\', \'sdp_create_star_type\' );
function sdp_create_star_type() {

    register_post_type( \'sdp_star\',
        array(
            \'labels\' => array(
                \'name\' => __( \'Stars\' ),
                \'singular_name\' => __( \'Star\' ),
                \'add_new_item\' => \'Add New Star of the Month\',
                \'edit_item\' => \'Edit this Star\',
                \'all_items\' => \'All Stars\'
            ),
        \'public\' => true,
        \'has_archive\' => true,
        \'rewrite\' => array(\'slug\' => \'stars\'),
        \'menu_icon\' => \'dashicons-star-filled\',
        \'menu_position\' => 5, //just below posts
        \'supports\' => array(\'title\', \'thumbnail\')
        )
    );
    //flush_rewrite_rules(); //<--This doesn\'t work either
}
我给模板命名my_theme/single-sdp_star.php 按照WP命名约定。

问题:无论我做什么,都会使用错误的模板文件:my_theme/single.php.

我已经尝试重新保存永久链接(多次),但这没有帮助。

我还能错过什么?

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

我也有同样的问题。为什么Wordpress不自动使用自定义单曲。php模板在我上面。除此之外,下面是我用来强制我的CPT使用我的自定义单曲的代码。php。只需更改CPT和模板名称即可满足您的需要。

    <?php
   /* Information Posts Template selection - a single.php just for our information posts */
function pietergoosen_info_template_include( $original_template ) {
    if ( isset( $wp->query_vars[\'information\'] ) && false == $wp->query_vars[\'information\']  ) {
        return get_template_directory() . \'/single-information.php\';
    } else {
        return $original_template;
    }
}

add_filter( \'template_include\', \'pietergoosen_info_template_include\' );

    ?>

结束

相关推荐

Custom post types templates

我已经注册了一个名为“Services”的自定义帖子类型,但当我给这篇帖子提供模板“single Services.php”时,它不接受这个,而是选择了“homepage.php”模板,你能告诉我这个问题吗?它也没有使用“archive services.php”模板,而是使用blog模板(index.php)使现代化代码如下:add_action(\'init\', \'services_register\'); function services_register() { $