Поддержка Проблемы и решения Вывод записей по категориям.

  • Есть цикл
    <?php while ( have_posts() ) : the_post(); ?>
    Мои данные
    <?php endwhile; ?>, который выводит записи по моему шаблону.
    Все новости были в одной основной категории, у которой масса подкатегорий.
    Теперь создал ещё одну основную категорию, и столкнулся с задачей: в рубриках новых категорий записи должны выводиться с другими доп.полями и css-оформление другое.

    Читал про вывод, но не нашел про подкатегории (с английским не дружу, мог пропустить). Как добавить такое условие и куда?

    «Если новость принадлежит категории 5 или её подкатегории, то {мой шаблон вывода}. Иначе {другой шаблон вовода}».

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Так?

    <?php
    while (have_posts()) : the_post();
        $cat = get_the_category();
        if ($cat->cat_ID == 5 || $cat->category_parent == 5) {
            get_template_part('content', '5');
        } else {
            get_template_part('content');
        }
    endwhile;
    ?>

    и создаете два файлика content-5.php и content.php.

    get_the_category, get_template_part

    Спасибо, вроде бы всё правильно по циклу. Но, почему-то у меня шаблон else {} применяется на все категории.

    Пробовал и так:
    $cat = get_the_category();
    if ($cat->cat_ID == 5 || $cat->category_parent == 5) {
    while (have_posts()) : the_post();
    get_template_part(‘content’, ‘5’);
    endwhile;
    } else {
    while (have_posts()) : the_post();
    get_template_part(‘content’, ‘4’);
    endwhile;
    }
    Результат тот же — выводит во всех шаблон content-4.php

    <?php
    while (have_posts()) : the_post();
    if ( in_category( ‘5’ )) {
    get_template_part(‘content’, ‘5’);
    }
    else {
    get_template_part(‘content’, ‘4’);
    }
    endwhile;
    ?>

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Вывод записей по категориям.» закрыта для новых ответов.