为什么我的外观菜单中看不到“小工具”?

时间:2015-08-21 作者:Alex

所以我尝试创建一个小部件区域。在向函数添加一些代码之后。php我注意到我在菜单中看不到“小部件”。所以我想我必须在我的主题中添加“小部件支持”,所以我开始搜索这个,但似乎有注册支持的功能(?)仅注册小部件区域。

所以在这一点上,我不知道为什么“小部件”没有出现。唯一可能的是,我的函数中有一些错误。php/widget函数。

这就是我的功能。迄今为止的php:

// Register widget area

// Function for initialize widget areas
function widget_areas () {

    // Widget area properties/args
    register_sidebar( array(
        \'name\'      =>      \'singlepage_bottom\', // Widget Area Name
        \'id\'      =>      \'singlepage_bottom_1\', // Widget Area ID
        \'before_widget\'      =>      \'<div>\', // Echo before widget area
        \'after_widget\'      =>      \'</div>\', // Echo after widget area
        \'before_title\'      =>      \'<h2>\', // Echo before widget title
        \'after_title\'      =>      \'</h2>\', // Echo after widget title
        ) );
}
add_action( \'widget_init\', \'widget_areas\' );

// END REGISTER WIDGET AREA

// Create widget

// Create a class that extends WP_Widet
class featured_widget extends WP_Widget {
    // function the defines the widget
    function __construct() {

        parent::__construct(
            // Widget Base ID
            \'featured_widget\',
            // Widget Name
            __( \'Featured Properties\', \'John Doe\' ),
            // Widget Option
            array(
                \'description\'   =>  __( \'Displays a carousel of featured properties.\', \'John Doe\' )
                )

            );
    }

    // Form function for the widget admin forms
    function form( $instance ) {
    }

    // Function to ensure WordPress updates user inputs
    function update( $new_instance, $old_instance ) {
    }

    // Function for the widget front-end
    function widget( $args, $instance ) {
    }
}

/* END WDIGETS */
如果有人能给我指出我做错了什么的正确方向。或者我需要做什么我会做得很好。

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

这里有两个问题(还有第三个不相关的问题)

问题1您正在呼叫register_widgetArea, 一个不存在的函数。相反,您希望注册一个侧栏。如果没有注册侧栏,则小部件菜单不会显示在管理区域中。相反,使用register_sidebar 注册侧栏。

我想打电话register_widgetArea 将在PHP中生成致命错误,但由于问题2,这不会发生

应在上注册问题2侧栏widgets_init 行动,但你使用了widget_init 从未调用的操作。这就是为什么您的代码没有生成致命错误,因为函数从未被调用。

问题3您创建了一个新的小部件,但定义一个继承自WP\\U小部件的类还不够,还需要注册它。一句警告的话,很多例子试图使用create_function 注册小部件以缩短代码时。这很糟糕,相当于使用eval, 鼓励不良行为。相反,以常规方式声明函数并使用其名称。

我还建议您要么使用PHP名称空间,要么在函数和类中添加前缀。当其他开发人员使用相同的名称时,泛型名称可能会发生冲突。确保不会发生这种情况,请在前面加上您的姓名,例如。jg_widget_areasjg_featured_widget

结束

相关推荐

customize footer widgets area

我有一个自定义的页脚小部件区域,它在一行中水平显示最多4个小部件。如果我添加了4个以上的小部件,那么布局就会中断,因为我试图在同一行中显示它。我想让它更灵活,例如有2行(div),我可以在第一行中添加let’s 2 widget,在第二行中添加4个widget。可能我需要的是复制这一个,并制作两个页脚区域。这可能吗?如果可能,我如何实现?下面是我的小部件的实际代码。php: /* Footer Widgets */ $footer_widgets_num = wp_get_sidebars_