Практический пример использования сайдбаров вы можете найти в моём видеоуроке.
Функция возвращает true
, если у сайдбара есть виджеты, false
, если у сайдбара нет виджетов (либо если сайдбара не существует вообще), а также выводит содержимое сайдбара на сайте (в том месте, где была использована).
dynamic_sidebar($index = 1)
$index
, то функция будет пытаться вывести сайдбар с ID sidebar-$index
. По умолчанию выводит сайдбар с порядковым номером 1, то есть с ID sidebar-1
.Так как по умолчанию в WordPress виджеты заключаются в тег <li>
, то сам блок с сайдбаром будет <ul>
:
<ul id="sidebar"> <?php dynamic_sidebar() ?> </ul>
Допустим это будет левый сайдбар с ID left-sidebar
, который был указан в функции register_sidebar() при регистрации. Такой вариант наиболее удобен, особенно если у вас на сайте зайдействовано несколько сайдбаров.
<ul id="leftbar"> <?php dynamic_sidebar('left-sidebar') ?> </ul>
В этом примере, если функция 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 );
false
или true
,Пусть для сайдбара с 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);
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.