在我当前的项目中,我有一些CPT(〜9),我希望其中的一部分使用相同的帖子模板,而另一部分则使用其他模板。直到那里,这段代码都是可以的。
public post(path, params): Promise<any> {
return this.http
.post(this.apiUrl + path, params)
.toPromise()
.then(r => r.json())
.catch(e => throw new Error(e.json()));
}
我的问题是当我创建新帖子时。我每次都必须选择模板...(> screenshot)对我的客户来说并不方便。重复处理。
是否可以强制使用默认模板?有任何想法吗 ?
提前感谢您的宝贵时间。
答案 0 :(得分:1)
您可以通过为CPT设置符合WP模板层次结构的自定义模板,并从这些模板文件中访问通用模板来实现所需的功能。
具体来说,对于希望使用通用模板的自定义帖子类型,可以在这些文件中使用get_template_part()
函数来访问通用模板结构。
如果您适当地命名模板文件,WordPress知道默认情况下应将模板用于给定的自定义帖子类型。
例如,如果您将模板文件命名为single-product.php
,则此模板将用于在子句product
中注册的自定义帖子类型。
模板是按层次选择的,因此,如果您需要,甚至可以让WordPress为特定的子弹显示自定义模板。自定义帖子类型的层次结构为:
single-{post-type}-{slug}.php
如果您将自定义帖子类型{post-type}与子句{slug}一起使用,则将使用此模板。否则... single-{post-type}.php
如果您具有自定义帖子类型{post-type},则将使用此模板。 single.php
否则,WP会退回到single.php singular.php
-如果没有single.php
index.php
。在您的情况下,您可以为每种自定义帖子类型分别设置各种模板,但是对于应该相同的模板,请从这些模板的 中引用您的通用模板部分。
例如,如果您具有自定义帖子类型cpt1
和cpt2
,它们应访问同一模板,则创建两个模板(single-cpt1.php
和single-cpt2.php
)并添加以下内容他们两个的代码:
<?php get_template_part('templates/content', 'common-cpt'); ?>
然后您可以将公用模板数据添加到名为templates/content-common-cpt.php
的模板文件中,然后应解决您的问题。