多个标签的自定义模板

时间:2014-03-29 作者:Benjamin

Wordpress允许我创建自定义标记模板,我有很多标记,我想显示带有模板的一些标记的帖子,以及带有另一个模板的其他标记的帖子。enter image description here

由于此图显示了模板层次结构,因此我可以轻松创建标记模板,为页面提供标记的名称或id。但是我想为大量的标签创建一个模板标签(而不是为每个不同的标签创建一个模板),并为剩余的标签创建另一个模板标签。

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

下面是一个“滥用”标记描述字段来存储标记模板名称的示例。我们使用tag_template 筛选以获取标记描述(如果存在),并将描述作为名称的一部分包含在模板文件中。您可以将其扩展到白名单特定的模板名称,以便键入错误不会导致尝试加载不存在的文件:

function wpd_tag_template( $templates = \'\' ){
    $tag = get_queried_object();
    if( !empty( $tag->description ) ){
        $templates = locate_template( \'custom-tag-\' . $tag->description . \'.php\', false );
    }
    return $templates;
}
add_filter( \'tag_template\', \'wpd_tag_template\' );
例如,描述包含template-1, WordPress将加载文件custom-tag-template-1.php 用于此标签。

SO网友:Mehdi Namvar

您可以使用tag.php 对于大量的标签和使用tag-{slug}.php 对于其余的。

此外,您可以在一个文件中对所有文件使用条件标记,tag.php:

if ( is_tag( \'{tag-one}\' ) ) {
  // only for tag with slug "tag-one"
} elseif ( is_tag( \'{tag two}\' ) ) {
  // only for tag with slug "tag-two"
} elseif ( is_tag( \'{tag three}\' ) ) {
  // only for tag with slug "tag-three"
} else {
  // Load default view for a great number of tags
}
甚至,is\\u tag()也接受一个slug或id数组。

我希望我做对了。

结束

相关推荐