所以问题是当在窗口小部件区域中删除新窗口小部件时,设置和字段消失,按下保存按钮会再次出现。
下面的屏幕截图
CODE OF ONE OF THE WIDGETS. 其中一个小部件的实际代码。主题名称替换为单词example。
<?php
class example_category_widget extends WP_Widget {
public function __construct() {
$widget_options = array( 'classname' => 'example_category', 'description' => 'Category List' );
parent::__construct( 'example_category', esc_html__('example - Category', 'textdomain' ), $widget_options );
}
public function widget( $args, $instance ) {
$title = ! empty( $instance['title'] ) ? $instance['title'] : 'Category List';
echo $args['before_widget'] . $args['before_title'] . $title . $args['after_title'] . $args['before_content'];
$string = '<ul class="widget-content">';
$catlist = get_terms( 'category' );
if ( ! empty( $catlist ) ) {
foreach ( $catlist as $key => $item ) {
$string .= '<li>'. $item->name . '<br />';
$string .= '<em>'. $item->description . '</em> </li>';
}
}
$string .= '</ul>';
echo $string;
wp_reset_query();
echo $args['after_content'] . $args['after_widget'];
}
public function form( $instance ) {
$title = ! empty( $instance['title'] ) ? $instance['title'] : 'Category'; ?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>">Title:</label>
<input type="text" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo esc_attr( $title ); ?>" /><br/>
</p><?php
}
// Apply settings to the widget instance.
public function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance[ 'title' ] = sanitize_text_field( $new_instance[ 'title' ] );
return $instance;
}
}
?>
注册补充工具栏的代码
function example_widgets_init() {
register_sidebar( array(
'name' => esc_html__( 'Sidebar Widgets', 'textdomain' ),
'id' => 'primary-sidebar',
'description' => esc_html__( 'Add widgets here.', 'textdomain' ),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="background-title '.$float.'"><span>',
'after_title' => '</span></h2>',
'before_content' => '<div class="widget-content"> ',
'after_content' => '</div>',
) );
}
add_action( 'widgets_init', 'example_widgets_init' );
这发生在所有小部件上,但是更改主题小部件工作正常。可能是什么问题?我已经尝试禁用管理脚本和我加入管理页面的脚本。
我该如何解决这个问题?
提前致谢。