WordPress - Как узнать, пуста ли боковая панель, не загружая ее? - PullRequest
0 голосов
/ 18 марта 2010

Я пытаюсь обернуть боковую панель с помощью DIV, и если боковая панель пуста, DIV не должен отображаться

Но я не могу использовать такие коды, как

if(dynamic_sidebar(1))
{
  echo '<div>';
  dynamic_sidebar(1);
  echo '</div>';
}

как будет загружаться боковая панель перед DIV, если она не пуста, есть идеи?

Ответы [ 3 ]

2 голосов
/ 18 марта 2010

Вы всегда можете использовать выходную буферизацию. Когда выходная буферизация включена, все, что обычно отображается на экране, вместо этого сохраняется в буфере. Затем вы можете проверить, есть ли что-нибудь в буфере, прежде чем выводить теги div.

ob_start();
dynamic_sidebar(1);
$sidebar = ob_get_clean();  // get the contents of the buffer and turn it off.
if ($sidebar) {
    echo "<div>" . $sidebar . "</div>";
}
2 голосов
/ 21 августа 2014

Вы можете использовать WordPress is_dynamic_sidebar () ; функция.

Возвращает true, если какая-либо зарегистрированная боковая панель содержит виджет; иначе ложь.

Пример:

<?php if(is_active_sidebar('my-sidebar') ) { ?>

<div class="about-us">

    <?php dynamic_sidebar('my-sidebar'); ?>

</div>

<?php } ?>

Это скрипт регистрации области виджета / боковой панели, который я запускаю из functions.php:

function foxinni_widgets_init() {

    register_sidebar( array(
      'name' => 'My Sidebar',
      'id' => 'my-sidebar',
      'description'   => '','before_widget' => '','after_widget'  => '','before_title'  => '','after_title'   => '',
    ) );

}
add_action( 'widgets_init', 'foxinni_widgets_init' );

Обратите внимание, что я использую строку my-sidebar, чтобы идентифицировать боковую панель по id.

2 голосов
/ 18 марта 2010

Попробуйте:

if ( is_active_sidebar(1) )
{
  echo '<div>';
  dynamic_sidebar(1);
  echo '</div>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...