The Issue: 我正在寻找定制的单篇文章模板,以添加或删除单个元素作为普通单篇文章的功能。
有很多方法可以在WordPress中为单个帖子创建自定义帖子模板。尤其是post格式是使用默认模板处理默认情况的绝佳机会;然而,我需要真正的自定义模板。
The Idea: 我的第一种方法是根据post ID添加if/else语句:
// check if custom post
if ( is_single(\'999\') )
// check if there is a custom post template file
if ( file_exists(TEMPLATEPATH . \'/single-999.php\' )
// use custom post template
return TEMPLATEPATH . \'/single-999.php\';
// use normal post template for everything else
include(TEMPLATEPATH . \'/single.php\');
好吧,这并没有错,但如果出现越来越多的特殊情况,我的模板代码就会完全混乱。因此,如果有一个与post ID对应的模板,我可以使用过滤器来始终使用自定义模板:
add_filter( \'single_template\', function( $template ) {
// check if there is a custom post template file
if ( file_exists(TEMPLATEPATH . \'/single-\' . $GLOBALS[\'post\']->ID . \'.php\') )
// use custom post template
return TEMPLATEPATH . \'/single-\' . $GLOBALS[\'post\']->ID . \'.php\';
// use normal post template for everything else
return $template;
});
但现在我将得到许多自定义模板文件,除了一些小的更改外,这些文件都是相同的。
More Thoughts: 我想我更愿意在single.php
模板,以便与自定义包含/筛选器挂钩?
The Question: 是否有不同的(更具排他性的)方法来获取这些类型的自定义帖子模板?
Update: 在许多这种特殊情况下,我需要添加一些额外的样式表或Javascript,但也需要添加带有HTML和PHP内容的自定义容器(这就是为什么我尝试使用自定义模板而不是自定义字段)。大多数情况下,附加元素位于上方、下方或旁边the_content()
.