иерархия шаблонов переопределения WordPress - PullRequest
0 голосов
/ 17 октября 2018

У меня есть пользовательский тип записи "проживание" и пользовательская таксономия "tax_destination".Когда я добавляю этот URL:

/?post_type=accommodation&tax_destination=granada

, шаблон отображается таксономически: taxonomy-tax_destination.php

Можно ли вместо этого использовать archive-Accommodation.php?

ЧтоЯ хочу показать список размещения для этой таксономии, используя шаблон архива.

1 Ответ

0 голосов
/ 17 октября 2018

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.

...