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
.
Примечание. Если вы повторно используете эти налоги / термины для других типов записей,вам может понадобиться включить is_post_type_archive( 'accommodation' )
или get_post_type() == 'accommodation'
в ваше заявление if.