Wordpress允许我创建自定义标记模板,我有很多标记,我想显示带有模板的一些标记的帖子,以及带有另一个模板的其他标记的帖子。
由于此图显示了模板层次结构,因此我可以轻松创建标记模板,为页面提供标记的名称或id。但是我想为大量的标签创建一个模板标签(而不是为每个不同的标签创建一个模板),并为剩余的标签创建另一个模板标签。
Wordpress允许我创建自定义标记模板,我有很多标记,我想显示带有模板的一些标记的帖子,以及带有另一个模板的其他标记的帖子。
由于此图显示了模板层次结构,因此我可以轻松创建标记模板,为页面提供标记的名称或id。但是我想为大量的标签创建一个模板标签(而不是为每个不同的标签创建一个模板),并为剩余的标签创建另一个模板标签。
下面是一个“滥用”标记描述字段来存储标记模板名称的示例。我们使用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
用于此标签。您可以使用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数组。我希望我做对了。