我正在尝试开发一个带有英雄滑块的wordpress主题,我使用一些第三方滑块小部件插入英雄小部件区域,我定义为sidebar-hero 在我的functions.php
文件
我使用以下代码显示英雄滑块:
<?php if(is_active_sidebar("sidebar-hero")) : ?>
<?php dynamic_sidebar("sidebar-hero");?>
<script type="text/javascript">document.body.classList.add("hero-widget-enabled");</script>
<?php else: ?>
<div class="carousel-page-container container">
<div class="header-filter" style=\'background-image: url(/wp-content/themes/sometheme/assets/images/demo/back.png)\'>
<div class="header-filter-gradient"></div>
</div>
</div>
</div>
<?php endif;?>
现在的问题是,我将自定义滑块添加到侧栏英雄小部件区域,它显示了滑块。我从窗口小部件中删除滑块,它显示默认图像。但是,当我从扩展页面禁用滑块而不将其从小部件区域中删除时,它仍会尝试显示动态侧栏。
这个is_active_sidebar()
方法返回true
即使侧栏英雄小部件区域的小部件设置页面中显示了任何小部件。
您对此问题有什么解决方案吗?是wordpress的bug,还是我做错了什么?
Update
wp_get_sidebars_widgets()
显示此输出(其中
smartslider3-2 不应包括,因为其插件已禁用):
array(6) {
["wp_inactive_widgets"]=>
array(11) {
[0]=>
string(10) "archives-2"
[1]=>
string(10) "archives-4"
[2]=>
string(6) "meta-2"
[3]=>
string(8) "search-2"
[4]=>
string(8) "search-4"
[5]=>
string(6) "text-2"
[6]=>
string(12) "categories-2"
[7]=>
string(14) "recent-posts-2"
[8]=>
string(17) "recent-comments-2"
[9]=>
string(6) "text-3"
[10]=>
string(11) "tag_cloud-2"
}
["sidebar-primary"]=>
array(3) {
[0]=>
string(12) "categories-3"
[1]=>
string(11) "tag_cloud-1"
[2]=>
string(10) "calendar-1"
}
["sidebar-footer-1"]=>
array(1) {
[0]=>
string(14) "recent-posts-3"
}
["sidebar-footer-2"]=>
array(1) {
[0]=>
string(7) "pages-2"
}
["sidebar-footer-3"]=>
array(1) {
[0]=>
string(11) "tag_cloud-3"
}
["sidebar-hero"]=>
array(1) {
[0]=>
string(14) "smartslider3-2"
}
}