编辑:现在我发现这是混合核心,显然模板层次结构不同。尽管如此,我仍然没有解决下面的问题。
除了标题之外。我的想法是,如果我能够在后端选择一个模板,它应该尊重这个选择。但这并没有改变。我已经测试了另一个模板文件来代替默认的模板文件,它可以正常工作。
这是添加自定义帖子类型的函数。这很好用。
add_action( \'init\', \'register_cpt_location\' );
function register_cpt_location() {
$labels = array(
\'name\' => _x( \'Locations\', \'info_location\' ),
\'singular_name\' => _x( \'Location\', \'info_location\' )
);
$args = array(
\'labels\' => $labels,
\'description\' => \'Custom Post Type for Location\',
\'hierarchical\' => true,
\'supports\' => array( \'title\', \'editor\', \'thumbnail\', \'custom-fields\', \'revisions\', \'page-attributes\' ),
\'public\' => true,
\'show_ui\' => true,
\'show_in_menu\' => true,
\'menu_position\' => 6,
\'show_in_nav_menus\' => true,
\'publicly_queryable\' => true,
\'exclude_from_search\' => true,
\'has_archive\' => true,
\'query_var\' => true,
\'can_export\' => true,
\'rewrite\' => array(
\'slug\' => \'location\',
\'with_front\' => false,
\'feeds\' => true,
\'pages\' => true
),
\'menu_icon\' => \'dashicons-location\',
\'capability_type\' => \'post\'
);
register_post_type( \'info_location\', $args );
}
当我为自定义帖子类型添加模板(仅用于少数帖子)时,metabox会显示我的新模板。但是,live页面仍然使用自定义帖子类型的默认模板。
默认模板是“info\\u location.php”。
这是模板文件“info\\u location-fm.php”的头部信息。
/*
* Template Name: Location-fm
* Template Post Type: info_location
*/
显示模板下拉列表(如下所示)
已选择并保存新模板,但仍不起作用(如下所示)