Intereting Posts
wp_list_pages не показывает cpt, как я ожидал Удалить & nbsp; в сообщении Название сайта дважды появляется на сайте Попытка получить свойство не-объекта при использовании get_post_permalink () Как показать полный пост на главной странице Есть ли какой-либо плагин wordpress для загрузки изображений и подписей на несколько страниц один раз Как подключиться после отправки электронной почты пользователя? Определение значения переменной перед функцией? Плагин расширенных пользовательских полей: отображение поля при отсутствии тегов p Я хочу разработать тему с помощью WordPress. Какую тему я должен начинать или начинать с нуля? Какой лучший способ использовать Bootstrap внутри панели администратора? Как использовать самопроизвольное меню по умолчанию? Требуется настраиваемое поле изображения для страниц attachment.php & flexslider-linking thumbnail для определенного изображения Редактирование страниц тегов и использование шаблонов

is_active_sidebar () Всегда возвращает False

Я никогда не is_active_sidebar() чтобы работать, независимо от того, есть ли виджеты на боковой панели или нет, я всегда получаю false. В настоящее время я создаю боковую панель для каждой страницы верхнего уровня:

http://pastebin.com/fX3Rv20f

Я создаю свой собственный виджет (ы):

http://pastebin.com/Bz9hv41z

И я проверяю, активна ли боковая панель так:

 if(is_active_sidebar(get_the_title())) echo 'active'; else echo 'not active'; 

Даже когда я вручную помещаю заголовок в: is_active_sidebar('Test'); он всегда возвращает false. Я использую условные ошибки? Нужно ли добавлять какие-то настройки? Почему is_active_sidebar() не работает?

Solutions Collecting From Web of "is_active_sidebar () Всегда возвращает False"

is_active_sidebar('Test'); функция работает правильно, если используется правильный слиз.

Я думаю, что проблема в том, что вы создаете идентификатор боковой панели:

 $sidebarID = preg_replace("/[\s_]/", "-", strtolower($page->post_title)); 

Затем sidebar-

 register_sidebar(array( 'name' => $page->post_title, 'id' => 'sidebar-'.$sidebarID, // 

Но вы используете немодифицированный заголовок в качестве пули, когда вы проверяете …

 if(is_active_sidebar(get_the_title())) 

Вам нужно изменить свой код, который вы проверяете на правильную боковую панель. вам нужно быть последовательным.

Изменить: Как указано, «функция работает правильно, если используется правильный слиз ». Хотя Codex указывает, что «Имя» является допустимым значением параметра, использование имени не работает, по крайней мере, когда я его пытаюсь использовать. Доказательство концепции (в основном скопировано из Кодекса):

 $args = array( 'name' => 'My Sidebar', 'id' => 'my-sidebar-id', 'description' => '', 'class' => '', 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>' ); register_sidebar($args); 

С боковой панелью, зарегистрированной с приведенным выше кодом, и виджетом на боковой панели, возвращается значение false .

 var_dump(is_active_sidebar('My Sidebar')); 

При использовании идентификатора возвращается правильный результат – true :

 var_dump(is_active_sidebar('my-sidebar-id')); 

Я не сделал достаточно исследований, чтобы определить, является ли Codex неправильным, или есть ли ошибка в Core. Однако использование ненормированных данных, таких как почтовое имя, вероятно, является плохой идеей в любом случае.