Vladddosss
@Vladddosss

Как сделать проверку is_active_sidebar?

Добрый день.
Подскажите, почему не работает код
if ( is_active_sidebar( 'footer-1' || 'footer-2' || 'footer-3' || 'footer-4' ) ) :
?>
<div id="footer-wrapper">

	<div class="wrapper">

		<div class="footer-wrap widget-area">

		<?php if ( is_active_sidebar( 'footer-1' ) ) : ?>
			<div class="column">
				<?php dynamic_sidebar('footer-1'); ?>
			</div>
		<?php endif; ?>

		<?php if ( is_active_sidebar( 'footer-2' ) ) : ?>
			<div class="column">
				<?php dynamic_sidebar('footer-2'); ?>
			</div>
		<?php endif; ?>

		<?php if ( is_active_sidebar( 'footer-3' ) ) : ?>
			<div class="column">
				<?php dynamic_sidebar('footer-3'); ?>
			</div>
		<?php endif; ?>

		<?php if ( is_active_sidebar( 'footer-4' ) ) : ?>
			<div class="column">
				<?php dynamic_sidebar('footer-4'); ?>
			</div>
		<?php endif; ?>

		</div><!-- .footer-wrap -->

	</div><!-- .wrapper -->

</div><!-- #footer-wrapper -->
<?php endif; ?>


Ошибка в этой строке if ( is_active_sidebar( 'footer-1' || 'footer-2' || 'footer-3' || 'footer-4' ) ) : в is_active_sidebar нельзя писать больше одного значения? Потому что когда делаю проверку с 2, 3, 4-мя значениями, то код не отображается и с виджетами и без них, а при одном значении все работает.

Как сделать проверку для всех четырех сайдбаров ( если в одном из них есть виджет, то блок футера отображается, если везде пусто, то не отображается) ?
  • Вопрос задан
  • 24 просмотра
Решения вопроса 1
ivan_zhuck
@ivan_zhuck
Выражение 'footer-1' || 'footer-2' || 'footer-3' || 'footer-4' всегда будет возвращать true, поскольку вы выполняете логическое ИЛИ с четырмя непустыми строками, вам же нужно передавать строку с названием сайдбара в функцию is_active_sidebar(), т.е. в вашем случае это должно выглядеть так:

if(is_active_sidebar( 'footer-1' ) || is_active_sidebar( 'footer-2' ) || is_active_sidebar( 'footer-3' ) || is_active_sidebar( 'footer-4' )){
  ...
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы