Wordpress 仅适用于不同自定义帖子类型的默认帖子模板
在我当前的项目中,我有一些CPT(~9),我希望其中一部分使用相同的帖子模板,另一部分使用另一个模板。在此之前,这段代码没有问题Wordpress 仅适用于不同自定义帖子类型的默认帖子模板,wordpress,custom-post-type,Wordpress,Custom Post Type,在我当前的项目中,我有一些CPT(~9),我希望其中一部分使用相同的帖子模板,另一部分使用另一个模板。在此之前,这段代码没有问题 <?php /* Template Name: 'Template 1' * Template Post Type: cpt1, cpt2, cpt3 */ ?> 我的问题是当我创建一个新帖子时。我每次都要选择模板…(>)这对我的客户来说不是很方便。重复的操作 是否可以强制使用默认模板?有什么想法吗 提前感谢您抽出时间 通过为您的CPT
<?php
/* Template Name: 'Template 1'
* Template Post Type: cpt1, cpt2, cpt3 */
?>
我的问题是当我创建一个新帖子时。我每次都要选择模板…(>)这对我的客户来说不是很方便。重复的操作
是否可以强制使用默认模板?有什么想法吗
提前感谢您抽出时间 通过为您的CPT设置符合WP模板层次结构的自定义模板,并从这些模板文件中访问公共模板,您可以实现所需的功能 具体来说,对于希望具有公共模板的自定义帖子类型,可以在这些文件中使用
get\u template\u part()
函数来访问公共模板结构
模板层次结构
如果您对模板文件进行了适当的命名,WordPress知道默认情况下该模板应用于给定的自定义帖子类型
例如,如果将模板文件命名为single product.php
,则此模板将用于向slug产品注册的自定义post类型
模板是按层次选择的,因此如果需要,您甚至可以让WordPress为特定slug显示自定义模板。自定义帖子类型的层次结构为:
single-{post type}-{slug}.php
。否则
single-{post type}.php
single.php
否则,WP将返回single.php
singular.php
-如果没有singular.php
最后,如果没有其他选项,WP将使用index.php
在您的情况下,您可以为每个自定义帖子类型分别设置各种模板,但对于应该相同的模板,请从这些模板中引用常用模板部分
例如,如果您有自定义的post类型cpt1
和cpt2
,它们应该访问同一个模板,请创建两个模板(single-cpt1.php
和single-cpt2.php
),并将以下代码添加到这两个模板中:
<?php get_template_part('templates/content', 'common-cpt'); ?>
然后,您可以将公共模板数据添加到名为templates/content common cpt.php
的模板文件中,您的问题应该得到解决
工具书类
是的,就是这样。我认为只使用post模板就可以避免使用单个-{post type}.php。但我必须把它们结合起来。谢谢你的回复!很高兴提供帮助-您也可以坚持使用single.php,并使用is_singular(['cpt1','cpt2'])
有条件地包含模板部分。如果您对逻辑模板重用感兴趣,我建议您看看Sage starter主题: