Помощь Как вывести разные messages для пустых категорий?

typus

Мой дом здесь!
Регистрация
25 Июл 2007
Сообщения
889
Реакции
238
WP 5.9.2, тема дочерняя от Twenty Twenty-Two.
На нескольких страницах выводятся категории, и если в категории published постов нет, то надо в зависимости от категории вывести соответствующий текст, свой для каждой категории. Категории не woocommerce, простые категории постов.
Всего нужно для 3 конкретных категорий такое выводить. Сейчас, если постов нет, вообще никакие сообщения не выводятся.
Можно конечно JS сделать, но правильнее на стороне бакенда. Или может плагин какой есть?
Я так понимаю, мне нужно что-то вроде где реализован цикл вывода постов после <?php if ( have_posts() ) : ?> добавить else, в котором в зависимости от id категории выводить разный текст.
Но тут проблема - я вообще не вижу где это реализовано в Twenty Twenty-Two - тема сильно отличается от предыдущих.
 

D'Jack

Постоялец
Регистрация
22 Сен 2012
Сообщения
436
Реакции
164
PHP:
<?php if (in_category('1') { ?>
        <?php if ( have_posts() ) : ?>


            <?php
            while ( have_posts() ) :
                the_post();

                get_template_part( 'template-parts/content', 'shablon_contenta' );

            endwhile;

            the_posts_navigation();

        else :

            get_template_part( 'template-parts/content', 'shablon_bez_contenta_category_1' );

        endif;
        ?>
<?php } elseif (in_category('2')) { ?>
        <?php if ( have_posts() ) : ?>


            <?php
            while ( have_posts() ) :
                the_post();

                get_template_part( 'template-parts/content', 'shablon_contenta' );

            endwhile;

            the_posts_navigation();

        else :

            get_template_part( 'template-parts/content', 'shablon_bez_contenta_category_2' );

        endif;
        ?>
<?php } else { ?>
        <?php if ( have_posts() ) : ?>


            <?php
            while ( have_posts() ) :
                the_post();

                get_template_part( 'template-parts/content', 'shablon_contenta' );

            endwhile;

            the_posts_navigation();

        else :

            get_template_part( 'template-parts/content', 'shablon_bez_contenta_category_3' );

        endif;
        ?>
<?php } ?>

в корне шаблона создайте папку "template-parts" а в ней файлы для каждой категории, с сообщениями об отсутствии постов с именами content-shablon_bez_contenta_category_1.php, content-shablon_bez_contenta_category_2.php, content-shablon_bez_contenta_category_3.php

shablon_contenta - можно заменить на файлик с циклом, который у вас выводит контент, или так же создать в папке "template-parts", файл content-shablon_contenta.php, который будет выводить контент для всех трех категорий

в (in_category('1'), (in_category('2'),- заменить цифры на id категорий.

upd

темка Twenty Twenty-Two действительно - адок, там нет иерархии шаблонов как на обычных темах WP, но если верить плагину Query Monitor, то можно руками добавить файл вывода категории в папку темы

Для просмотра ссылки Войди или Зарегистрируйся (у меня тут шаблоны, которые используются при выводе страницы)

но это не точно, надо пробовать...
 
Последнее редактирование:
Сверху