Функция возвращает true, если у сайдбара есть виджеты, false, если у сайдбара нет виджетов (либо если сайдбара не существует вообще), а также выводит содержимое сайдбара на сайте (в том месте, где была использована).
dynamic_sidebar($index = 1)  | 
- $index
 - (целое число|строка) ID сайдбара, который нужно вывести, либо его порядковый номер. Если в качестве аргумента передано целое число 
$index, то функция будет пытаться вывести сайдбар с IDsidebar-$index. По умолчанию выводит сайдбар с порядковым номером 1, то есть с IDsidebar-1.
В качестве значения этого параметра также можно использовать название сайдбара, но лучше используйте ID. 
Пример 1. Просто выводим сайдбар.
Так как по умолчанию в WordPress виджеты заключаются в тег <li>, то сам блок с сайдбаром будет <ul>:
<ul id="sidebar">
    <?php dynamic_sidebar() ?>
</ul>
 | 
Пример 2. Выводим сайдбар с указанным ID
Допустим это будет левый сайдбар с ID left-sidebar, который был указан в функции register_sidebar() при регистрации. Такой вариант наиболее удобен, особенно если у вас на сайте зайдействовано несколько сайдбаров.
<ul id="leftbar">
    <?php dynamic_sidebar('left-sidebar') ?>
</ul>
 | 
Пример 3. Условие
В этом примере, если функция dynamic_sidebar() возвратит false, то будет выполняться некий код по умолчанию:
<ul id="sidebar">
    <?php 
        if ( ! dynamic_sidebar( 'my-sidebar' ) ) : // если true, то выведет содержимое сайдбара
            // код по умолчанию, будет выполняться, если сайдбара не существует или если он без виджетов
        endif;
    ?>
</ul>
 | 
Позволяет повлиять на возвращаемое логическое значение функции для какого-либо конкретного сайдбара с указанным ID.
apply_filters( 'dynamic_sidebar_has_widgets', $did_one, $index );  | 
- $did_one
 - (логическое) возвращаемое значение функции — 
falseилиtrue, - $index
 - (строка) ID сайдбара;
 
Пусть для сайдбара с ID sidebar-1 функция dynamic_sidebar() всегда возвращает true. Однако обратите внимание, что это никак не повлияет на то, будет выведен сайдбар или нет.
function true_return_true_4_sidebar_1( $did_one, $index ){ if( $index == 'sidebar-1' ){ return true; } } add_filter( 'dynamic_sidebar_has_widgets', 'true_return_true_4_sidebar_1', 10, 2);  | 
Источник: misha.blog