Wordpress вложенный, если is_active_sidebar внутри другого is_active_sidebar - PullRequest
0 голосов
/ 07 октября 2019

У меня есть тема, которая отображает меню продуктов через виджеты. Мы можем показать / скрыть эти категории (боковые панели) с помощью кода ниже. Прямо сейчас он покажет / скроет этот элемент карусели, если у одной из двух категорий товаров есть виджеты. Мы хотели бы сохранить эту функциональность, но скрыть категорию, если она пуста. Например, если есть продукты в категории 1, но не в категории 2, мы хотим скрыть целый раздел (см. Примечания в коде того, где мы хотим это.

        <?php if ( is_active_sidebar( 'widget-category-1' ) || is_active_sidebar('widget-category-2') ) { ?>
        <div class="carousel-item active animated fadeIn">
            <div class="d-block w-100">

                //show or hide start here//
                <div class="container-fluid px-5">
                    <div class="row">
                        <ul class="three-col">
                            <?php dynamic_sidebar( 'widget-category-1' ); ?>
                        </ul>
                    </div>
                </div>
                //show or hide end here//

                //show or hide start here//
                <div class="container-fluid">
                    <div class="row">
                        <ul class="three-col">
                            <?php dynamic_sidebar( 'widget-category-2' ); ?>
                        </ul>
                    </div>
                </div>
                //show or hide end here//

            </div>
        </div>
        <?php } ?>`

Ответы [ 2 ]

0 голосов
/ 07 октября 2019

В итоге мы завернули каждый раздел в <div class="phide"></div> и использовали javascript, чтобы скрыть этот div, если нет <li></li>

<script>
(function($) {
    $( document ).ready(function() {
        $('.phide:not(:has(li))').hide();
    });
})(jQuery);
</script>
0 голосов
/ 07 октября 2019

Вы можете использовать first-of-type или nth-of-type для ссылки на элемент, который вы хотите переключить. Этот или, возможно, псевдокласс not () должен помочь.

Я добавил тег CSS к вашему вопросу. Вам нужно было бы добавить остальную часть элемента, которую возвращает dynamic_sidebar, чтобы быть уверенным, но обычно есть идентификатор «has-items», на который вы можете ссылаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...