我使用以下代码注册了自定义帖子类型:
#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
.
我已经尝试重新保存永久链接(多次),但这没有帮助。
我还能错过什么?
最合适的回答,由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\' );
?>