这是我的职责:
function ec_register_sidebars() {
register_sidebars( 3,
array(
\'name\' => \'Sidebar %d\',
\'id\' => "sidebar-$i",
\'before_widget\' => \'<li id="%1$s" class="widget %2$s">\',
\'after_widget\' => \'</li>\',
\'before_title\' => \'\',
\'after_title\' => \'\'
)
);
这个
does not work:
<?php if ( is_active_sidebar( \'Sidebar 1\' ) ) : ?>
<?php dynamic_sidebar( \'Sidebar 1\' ); ?>
<?php else : ?>
No primary sidebar content
<?php endif; ?>
BUT 如果我将*is\\u active\\u侧边栏*更改为“侧边栏2”或“侧边栏3”,它会起作用。例如
this works:
<?php if ( is_active_sidebar( \'Sidebar 2\' ) ) : ?>
<?php dynamic_sidebar( \'Sidebar 1\' ); ?>
<?php else : ?>
No primary sidebar content
<?php endif; ?>
我不明白为什么会这样。有什么想法吗?
SO网友:dwenaus
您的name属性似乎缺少sprintf特性。该行应为
\'name\' => sprintf(__(\'Sidebar %d\'), $i ),
否则%d根本不引用$i。此外,看起来您应该调用侧栏id,而不是名称。这个名字只是为了好看。例如,一旦上述问题得到解决,这将起作用:
<?php dynamic_sidebar( \'sidebar-1\' ); ?>