获取特定侧边栏$wp_REGISTED_SIDEAR

时间:2014-01-19 作者:Pieter Goosen

我在子主题的粘贴箱中具有以下功能:

http://pastebin.com/uzjmXiyN

此函数创建一个下拉框,从中可以选择用于特定页面的侧栏。出了很多汗,一切都很好。我唯一的问题是

$wp\\u registered\\u侧栏

以下代码段中的函数

foreach($wp_registered_sidebars as $sidebar_id => $sidebar)
{
    $output .= "<option";
    if($sidebar_id == $val)
        $output .= " selected=\'selected\'";
    $output .= " value=\'".$sidebar_id."\'>".$sidebar[\'name\']."</option>";
}

$output .= "</select>";

echo $output;
这个函数列出了主题的所有可用边栏,这是我不想要的。我只希望下拉框显示

$dynamic\\u widget\\u区域

大堆如果我更换

$wp\\u registered\\u侧栏

具有

$dynamic\\u widget\\u区域

我发现以下错误:

注意:未定义变量:dynamic\\u widget\\u area。。。等

警告:为foreach()提供的参数无效。。。等

仅显示某些侧栏的正确方式是什么。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

这是一个普通的PHP问题。您需要检查$sidebar_id 密钥设置为$dynamic_widget_areas 当您循环通过时。这个概念验证代码应该给您提供一些想法。

$dynamic_widget_areas = array(
  \'sidebar-1\' => \'stuff\',
);
global $wp_registered_sidebars;
$output = \'\';
foreach($wp_registered_sidebars as $sidebar_id => $sidebar) {
  $output .= "<option";
  if(isset($dynamic_widget_areas[$sidebar_id])) {
     if($sidebar_id == $val) {
      $output .= " selected=\'selected\'";
    }
    $output .= " value=\'".$sidebar_id."\'>".$sidebar[\'name\']."</option>";
  }
}
$output .= "</select>";

结束

相关推荐

How do WP child-themes work?

好的,我已经设置了主主题,现在我创建了一个名为interio\\u child的子主题。从这些instructions 我知道您只需要添加样式。css文件,用于链接到主主题。此外,您还可以添加其他文件来覆盖主主题中的代码。现在我已经激活了我的孩子主题。它只显示“我的子主题”文件夹中的代码,而不显示CSS。这怎么可能?我看过很多教程和wordpress支持主题,但我无法将这个儿童主题链接到我的主主题。这些是我的孩子主题风格的内容。css:/* Theme Name: Interio Child&#x