这个is_active_sidebar(\'Test\');
如果使用了正确的缓动阀,则功能正常工作。
我认为问题在于,您正在这样构造提要栏ID:
$sidebarID = preg_replace("/[\\s_]/", "-", strtolower($page->post_title));
然后预编
sidebar-
对它。。。
register_sidebar(array(
\'name\' => $page->post_title,
\'id\' => \'sidebar-\'.$sidebarID,
//
但当你检查时,你使用的是未修改的标题作为slug。。。
if(is_active_sidebar(get_the_title()))
您需要修改您正在检查的代码,以获得正确的边栏段塞。你需要始终如一。
Edit: 如上所述,“如果slug 虽然法典确实声明“Name”是一个有效的参数值,但使用该名称是行不通的,至少在我尝试使用它时是行不通的。概念证明(主要是从法典中复制的):
$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\'));
使用ID时返回正确的结果--
true
:
var_dump(is_active_sidebar(\'my-sidebar-id\'));
我还没有做足够的研究来确定抄本是否错误,或者核心是否存在缺陷。然而,在任何一种情况下,使用未规范化的数据(如帖子名称)都可能是一个坏主意。