WordPress自定义帖子类型-帖子属性:模板。模板显示并保存在后端,但呈现的是默认主题文件

时间:2017-08-11 作者:Will Braden

编辑:现在我发现这是混合核心,显然模板层次结构不同。尽管如此,我仍然没有解决下面的问题。

除了标题之外。我的想法是,如果我能够在后端选择一个模板,它应该尊重这个选择。但这并没有改变。我已经测试了另一个模板文件来代替默认的模板文件,它可以正常工作。

这是添加自定义帖子类型的函数。这很好用。

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
*/
显示模板下拉列表(如下所示)

showing the drop down for templates

已选择并保存新模板,但仍不起作用(如下所示)

new template selected and saved, still doesn't work

1 个回复
SO网友:Jitender Singh

在代码中:

$labels = array(
    \'name\' => _x( \'Locations\', \'info_locaiton\' ),
    \'singular_name\' => _x( \'Location\', \'info_location\' )
);
使用此选项:

$labels = array(
    \'name\' => _x( \'Locations\', \'info_location\' ),
    \'singular_name\' => _x( \'Location\', \'info_location\' )
);
在中$labels 变量name 数组值具有不同的slug。我认为这可能是个问题。因此,您可以更正它并进行检查。也可以使用自定义帖子类型插件轻松创建自定义帖子类型。

希望这会有所帮助!

结束

相关推荐

Multiple single templates?

假设我有一个名为“事件”的自定义帖子类型,它有几个用于图像、文档等的自定义元框。。是否可能有两个不同的单一模板?例如:我有一个列出所有事件的页面,如果我单击一个事件,单一视图将显示我在event single中输入的所有元信息。php模板。现在,我想有一个不同的页面,再次列出所有事件,但如果我单击查看单个事件,则会使用不同的模板,以便显示与事件相关的其他元数据。或更好:page-events.php lists all events -> click on event -> shows sin