未定义的索引:CUSTOM_SIDEAR

时间:2015-11-25 作者:Madeirense

我正在开发一个主题上实现自定义侧边栏。

当我添加新的自定义侧栏时,一切都很好。然而,如果我删除这些新添加的自定义侧栏,我会得到错误的未定义索引:custom\\u sidebars。

if ( function_exists( \'register_sidebar\' ) ) {

        // CUSTOM SIDEBARS

        global $my_theme_option;

        $my_theme_custom_sidebars = $my_theme_option[ \'custom_sidebars\' ];

        if ( isset( $my_theme_custom_sidebars ) && sizeof( $my_theme_custom_sidebars ) > 0 ) {
            foreach ( (array)$my_theme_custom_sidebars as $sidebar ) {
                register_sidebar( array(
                    \'name\' => $sidebar,
                    \'id\'   => \'sidebar-\' . $sidebar,
                    \'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
                    \'after_widget\' => \'</div> <!-- end of widget -->\',
                    \'before_title\' => \'<h3 class="widget-title">\',
                    \'after_title\' => \'</h3>\'
                ));
            }
        }
    }
错误发生在以下行:

$my_theme_custom_sidebars = $my_theme_option[ \'custom_sidebars\' ];
我有点被困在这个问题上,任何帮助都将不胜感激。

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

听起来$my\\u theme\\u选项没有“custom\\u sidebars”索引,如果您删除了它,它就不存在了。

只需在其周围添加一个if isset(),就像在for循环周围所做的那样

此外,如果register\\u边栏等函数的使用年限超过2年,则无需检查它们是否存在。

编辑:不要使用全局变量!有这样的功能,例如get_option()

    // CUSTOM SIDEBARS

    global $my_theme_option;

    if(isset( $my_theme_option[ \'custom_sidebars\' ] )){

        $my_theme_custom_sidebars = $my_theme_option[ \'custom_sidebars\' ];

        if ( sizeof( $my_theme_custom_sidebars ) > 0 ) {
            foreach ( (array)$my_theme_custom_sidebars as $sidebar ) {
                register_sidebar( array(
                    \'name\' => $sidebar,
                    \'id\'   => \'sidebar-\' . $sidebar,
                    \'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
                    \'after_widget\' => \'</div> <!-- end of widget -->\',
                    \'before_title\' => \'<h3 class="widget-title">\',
                    \'after_title\' => \'</h3>\'
                ));
            }
        }
    }

相关推荐

当模板中没有Get_Sidebar时,您如何控制侧边栏?

我正在使用Omega(ThemeHall版本;有多个Omega主题)进行WordPress 4.0安装。我看到的大多数用于控制侧栏是否显示的说明都告诉我如何使用get_sidebar 标签这个主题让我可以在任何地方或任何地方打开侧栏,所以我选择在所有地方都打开它,这样我就可以从页面模板中找到并删除get\\u侧栏。但是当我看所有的时候。主主题文件夹中的php文件,get\\u侧边栏不会出现。在任何地方不在第页中。php,索引。php,页脚。php等等等等等等等等。这就是我的WordPress理解能力突然停