我有一个自定义帖子类型“ accommodation”和一个自定义分类法“ tax_destination”。 当我输入此网址时:
/?post_type=accommodation&tax_destination=granada
呈现的模板是:taxonomy-tax_destination.php
是否可以改用archive-accommodation.php?
我要使用存档模板显示该分类法的住宿清单。
答案 0 :(得分:0)
WordPress具有方便使用的过滤器template_include
,可让您覆盖特定请求中包括的模板文件。您可以使用is_tax()
将其与支票相结合。 $term
参数是可选的,但是由于您包含了一个参数,因此我将其包含在内,因此它仅适用于granada
术语:
add_filter( 'template_include', 'accommodation_template', 99 );
function accommodation_template( $template ) {
if( is_tax( 'tax_destination', 'granada' ) ){
$new_template = locate_template( array( 'archive-accommodation.php' ) );
if( !empty( $new_template ) ){
return $new_template;
}
}
return $template;
}
如果将其放在functions.php
文件中,它将确定当前请求是否针对分类法granada
中的术语tax_destination
,并返回archive-accommodation.php
模板
注意:如果您在其他职位类型上重复使用这些税项/条款,则可能还需要在if语句中包括is_post_type_archive( 'accommodation' )
或get_post_type() == 'accommodation'
。