针对页面的帖子自定义模板:页面-{id}与单个-{id}

时间:2016-10-29 作者:Robin Andrews

如果我理解正确,我可以通过创建一个名为page-{my_page_title_or_id), 在访问该页面时显示。我还可以通过添加Template Name: My Page Type 在标题注释中。

然而,员额的情况似乎非常不同。据我所知,创建一个名为single-{post_title_or_id) 不会强制显示给定帖子的文件。它似乎什么也没做。

我知道我可以创建自定义帖子类型并使用single-{post_type_name}, 这很好。然而,如果我只想为一篇特定的文章创建一个模板,这似乎有些过头了,而且我必须为文章的id/标题与我想显示的唯一内容匹配的时间包含条件逻辑。

我错过什么了吗?我对情况的理解正确吗?有人能告诉我显示具有给定标题/id的帖子的自定义视图的最简单方法吗?

1 个回复
最合适的回答,由SO网友:birgire 整理而成

A) 单个帖子模板:single-{post-type}-{post-name}.php

查看get_single_template() 作用

在那里,我们发现以下模板可能性:

"single-{$object->post_type}-{$object->post_name}.php"
"single-{$object->post_type}.php"
"single.php"
在WordPress 4.7中,将添加此部分:

"single-{$object->post_type}-{$name_decoded}.php"    
看来你忘了{$object->post_type} 模板名称中的零件。

Example:

带有slug的帖子的单个模板名称hello-world:

single-post-hello-world.php
自定义单篇文章模板WordPress 4.7中的另一个功能是支持自定义单篇文章模板。

退房券#18375 了解更多信息。

Example:

我刚刚通过创建一个模板文件测试了这个新特性,例如:。tpl-wpse-test.php, 在当前主题目录中:

<?php
/**
 * Template Name:      WPSE Template Test
 * Template Post Type: post
 */
 get_header();
 ?><div id="main"> WPSE Template Test - Success! ;-) </div><?php
 get_footer();
然后,以下元框会自动显示在相应帖子类型的后端。

Metabox

还有一种多柱式支架,例如:

 * Template Post Type: posttype1, posttype2, posttype3
但是没有必要使用add_theme_support(), 就像我们用来获取特色图像的元框一样。

相关推荐

Updating modified templates

我想调整一些。php模板文件在我的WordPress主题中,我知道正确的过程是将相关文件复制到子主题文件夹中并在那里编辑文件,这样我的修改就不会在将来的主题更新中丢失。但这是否意味着我将无法从主题更新中获益,因为我将文件放在了我的子主题文件夹中?这可能不是一件好事,因为主题更新可能添加了一些有用的特性,甚至修复了我最初需要对代码进行调整的问题!这方面的常见解决方案是什么?有人推荐了一款Diff应用程序——这是人们常用的吗?