WP_REGISTERED_WIDGETS不包含我的小部件

时间:2017-03-06 作者:Angelica Rosa

我有一个问题:我管理的一个wordpress站点没有任何控件。当我打开小部件管理面板时,所有侧栏都是空的。

我调试了一些代码,发现小部件存在于数据库字段“sidebars\\u widgets”中。但在显示它们时,仅限于此:

wp包括/小部件。php,第658行

if ( !isset($wp_registered_widgets[$id]) ) continue
因为wp_registered_widgets 仅包含可用和非活动小部件。例如,我有一个text-2 侧边栏中的小部件wp_registered_widgets 变量仅包含text-1, 可用的一个。

到目前为止,我很难理解这个变量是在哪里填充的。有人能帮忙吗?

1 个回复
SO网友:Angelica Rosa

创建于此:wp包括/类wp小部件。菲律宾比索#248

public function _register() {
    $settings = $this->get_settings();
    $empty = true;

    // When $settings is an array-like object, get an intrinsic array for use with array_keys().
    if ( $settings instanceof ArrayObject || $settings instanceof ArrayIterator ) {
        $settings = $settings->getArrayCopy();
    }

    if ( is_array( $settings ) ) {
        foreach ( array_keys( $settings ) as $number ) {
            if ( is_numeric( $number ) ) {
                $this->_set( $number );
                $this->_register_one( $number );
                $empty = false;
            }
        }
    }

    if ( $empty ) {
        // If there are none, we register the widget\'s existence with a generic template.
        $this->_set( 1 );
        $this->_register_one();
    }
}
get\\u settings函数检索保存在wp\\u options表中的小部件的选项。我在某种程度上把这些信息丢进了数据库。

相关推荐

widgets not working

我粘贴了我的siderbar小部件代码widgets.php 文件 function right_sidebar_widget() { register_sidebar( array( \'name\' => \'Right Siderbar\', \'id\' => \'right-siderbar\', \'description\' => \'Right Sidebar\',