Поддержка Проблемы и решения Убрать сайдбар при остутствии виджетов в нём

  • Решено shigaev

    (@carbonady)


    Как убрать сайдбар при остутствии виджетов в нём?

    Проблема в том, на страницах записей, сбоку, всё равно остаётся пустое место для него. Но совсем сносить, удалением строки в коде single, я не хочу.

    Есть решение как-то «свернуть» его пространство через functions.php?

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

    (@sergeybiryukov)

    Live and Learn

    Как убрать сайдбар при остутствии виджетов в нём?

    С помощью функции is_active_sidebar(). Пример:

    <?php if ( is_active_sidebar( 'left-sidebar' ) ) : ?>
    	<ul id="sidebar">
    		<?php dynamic_sidebar( 'left-sidebar' ); ?>
    	</ul>
    <?php endif; ?>

    Логика ясна. А как это реализовать в functions.php?

    Я получил ошибку, когда вставил этот код в конец functions.php. Потом заметил отсутствие у functions.php него закрывающего «?>». Добавил. Потом вставил код ниже и ошибка исчезла. Но так как эффекта не последовало — пустое пространство сайдбара оставалось пустым и не замещалось содержимым страницы — заменил названия сайдбара своими, теми что в теме. Но ничего не изменилось.

    Проверил, для чистоты эксперимента: убрал строку вызова сайдбара в single.php. Всё осталось так же: пустое пространство никуда не делось.

    Как всё-таки сделать, через functions.php, так, чтобы контент страницы расползся на место убираемого сайдбара?

    P.S. За ширину контента отвечает один айдишник в style.css. Если увеличить ему значение, то всё ок: контент расширяется, занимая пространство сайдбара. Даже, при добавлении виджетов, происходит всё так, как нужно: они сползают под контент.

    Есть возможность добавить такое поведение для style.css в functions.php? Я бы хоть глянул — как это в принципе делается, был бы мне прогресс в изучении.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    За ширину контента отвечает один айдишник в style.css. Если увеличить ему значение, то всё ок: контент расширяется, занимая пространство сайдбара.

    Значит, нужно в шаблоне в зависимости от значения is_active_sidebar() присваивать блоку с контентом ID или класс с нужной шириной.

    functions.php в этом процессе никак не участвует.

    ок

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