无法保存小部件内容

时间:2018-07-21 作者:Alt C

我有两个小部件。它们是在同一个文件小部件中创建的。php。如果我只保留一个小部件,那么它将不会出现任何问题。但当它们在一起时,一个将停止工作(它将不可拖动)。

我的代码如下。

class Widget_1 extends WP_Widget {

    //setup the widget name, description, etc...
    public function __construct() {

        $widget_ops = array(
            \'classname\' => \'widget1\',
            \'description\' => \'Description\',
        );
        parent::__construct( \'widget1\', \'Widget 1\', $widget_ops );

    }

    //back-end display of widget
    public function form( $instance ) {
        echo \'<p><strong>Some text here</p>\';
    }

    //front-end display of widget
    public function widget( $args, $instance ) {

        echo $args[\'before_widget\'];

    //there are fields in between this

        echo $args[\'after_widget\'];
    }

}
add_action( \'widgets_init\', function() {
    register_widget( \'Widget_1\' );
} );




class Widget_2 extends WP_Widget {

    //setup the widget name, description, etc...
    public function __construct() {

        $widget_ops = array(
            \'classname\' => \'widget2\',
            \'description\' => \'Description\',
        );
        parent::__construct( \'widget2\', \'Widget 2\', $widget_ops );

    }

    //back-end display of widget
    public function form( $instance ) {
        echo \'<p><strong>Sometext here</p>\';
    }

    //front-end display of widget
    public function widget( $args, $instance ) {

        echo $args[\'before_widget\'];

  //there are fields in between this

        echo $args[\'after_widget\'];
    }

}
add_action( \'widgets_init\', function() {
    register_widget( \'Widget_2\' );
} );
当我更改

public function form( $instance )

public function forms( $instance )
两者都开始工作,但保存按钮不会为一个插件显示。

谢谢

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

原因很简单,很容易被忽视。。。它与将两个小部件放在同一个文件或类似的文件中无关。。。

让我们看看负责打印小部件表单的代码:

public function form( $instance ) {
    echo \'<p><strong>Sometext here</p>\';
}
你现在看到了吗?那里有未关闭的标签。。。

您打开<p> 标记,然后打开<strong> 标记,切勿关闭。这会导致不正确的JS行为-因此无法拖动(&;删除第二个小部件。。。

结束

相关推荐

Using add_filter() in Widgets

只需查询引用add_filter() 作用您可以在WordPress小部件类中使用此函数吗。Example我有一个带有动态创建代码的小部件,我想将其传递给插件中创建的另一个函数。这能实现吗?<?php /** * Display the actual Widget * * @param Array $args * @param Array $instance */ public function widget($args, $inst