Шаблоны для лесоматериалов / TWIG для отдельных категорий - PullRequest
0 голосов
/ 09 декабря 2018

Итак, в стартовой теме у нас есть это:

archive.php:

$templates = array( 'archive.twig', 'index.twig' );

$context = Timber::get_context();

$context['title'] = 'Archive';
if ( is_day() ) {
    $context['title'] = 'Archive: ' . get_the_date( 'D M Y' );
} else if ( is_month() ) {
    $context['title'] = 'Archive: ' . get_the_date( 'M Y' );
} else if ( is_year() ) {
    $context['title'] = 'Archive: ' . get_the_date( 'Y' );
} else if ( is_tag() ) {
    $context['title'] = single_tag_title( '', false );
} else if ( is_category() ) {
    $context['title'] = single_cat_title( '', false );
    array_unshift( $templates, 'archive-' . get_query_var( 'cat' ) . '.twig' );
} else if ( is_post_type_archive() ) {
    $context['title'] = post_type_archive_title( '', false );
    array_unshift( $templates, 'archive-' . get_post_type() . '.twig' );
}

$context['posts'] = new Timber\PostQuery();
Timber::render( $templates, $context );

, насколько я понимаю, если я перейду к http: //.......com/index.php/category/newcategory/ он должен взять файл archive-newcategory.twig в качестве шаблона.Другой пример, если я зайду на http: //.......com/index.php/category/anothercat/, то он должен взять архив anothercat.twig .Возможно ли, что я понимаю что-то не так?Потому что, если это так, моя начальная тема не работает, как задумано.Я не могу найти динамическое решение в документах, если это не то.

1 Ответ

0 голосов
/ 09 декабря 2018

Работает как задумано.Если значение is_category() равно true, архив будет извлекать идентификатор категории через get_query_var( 'cat' ), а не имя категории.

Вы можете обновить код в archive.php , чтобы добавить Twigшаблон, который вы хотите использовать.Например:

else if ( is_category() ) {
    $term = new Timber\Term( get_queried_object_id() );

    $context['term']  = $term;
    $context['title'] = single_cat_title( '', false );

    array_unshift( $templates, 'archive-' . $term->slug . '.twig' );
}

Или вы также можете использовать другой шаблон PHP.Рассмотрим список шаблонов PHP на wphierarchy.com .Там вы можете увидеть, что вы можете использовать файл category.php в корне вашей темы:

$context = Timber::get_context();
$context['title'] = single_cat_title( '', false );

Timber::render( 'archive-category.twig', $context );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...